sql - 带计数的蜂巢查询
问题描述
我们有一个如下所示的 Hive 表:
我们希望看到如下输出:
对于每个日期,显示购买每种水果的顾客数量。如果那天没有人买水果,用 0 代替 NULL。非常感谢任何 Apache Query 来实现这一点
更新:苹果、香蕉、葡萄和橙子只有四种产品。我们不想找到不同的日期和不同的产品。
解决方案
如果您的 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
推荐阅读
- c++ - boost::python::list 得到值段错误
- css - 更改灯箱链接的链接颜色
- javascript - 查找范围开始或结束的元素
- android - javaDatabinding-method 不会在字段更改时自动调用
- javascript - 无法在后端接收 cookie
- python - 创建一个大小为 x 的向量,其中两个数字随机划分
- c# - 在 Unity2D 中,GameObject 被实例化,但在与(有时)碰撞时不会触发它应该做的事情
- c++ - 为什么不能将静态 constexpr 成员变量传递给函数?
- python - Python Pandas - 如何获取数据框中一个或多个过滤行的(iloc)位置
- game-physics - 粒子在我的物理引擎中表现异常