首页 > 解决方案 > 带计数的蜂巢查询

问题描述

我们有一个如下所示的 Hive 表:

蜂巢表

我们希望看到如下输出:

输出

对于每个日期,显示购买每种水果的顾客数量。如果那天没有人买水果,用 0 代替 NULL。非常感谢任何 Apache Query 来实现这一点

更新:苹果、香蕉、葡萄和橙子只有四种产品。我们不想找到不同的日期和不同的产品。

标签: sqlhadoophivehiveql

解决方案


如果您的 RDMS 支持COUNT(DISTINCT ...),这是一个简单的聚合查询:

SELECT mydate, product, COUNT(DISTINCT customer)
FROM mytable
GROUP BY mydate, product

PS:命名列通常不是一个好主意date,因为这与同名 sql 数据类型冲突。我在查询中将其更改为mydate


如果没有COUNT(DISTINCT ...),您将需要使用子查询:

SELECT mydate, product, COUNT(*)
FROM (SELECT DISTINCT mydate, product, customer FROM mytable) x
GROUP BY mydate, product

推荐阅读