sql—计算给定id具有特定值的次数,然后使用算术运算符

7ivaypg9  于 2021-06-24  发布在  Hive
关注(0)|答案(2)|浏览(257)

使用apache在hive中运行一个查询,我想计算给定id拥有订单号的次数,然后只包含至少有3个订单的id。我用这样的方法来聚合值:

select customer_id, count (distinct order_id) 
    from customer_table
    group by customer_id

只有订单数超过3个的客户才能使用哪种方式?我尝试添加一个带有算术运算符的where子句,但它无法工作(例如。 where count (distinct claim_id) is >= 3 )

q9yhzks0

q9yhzks01#

在同一查询中不能有group by和distinct。请看打开 hive 吉拉票
我已经测试了下面的脚本在Hive,它为我工作。

select customer_id, order_id, count(1) as counting from customer_table
group by customer_id, order_id
having counting >= 3
cl25kdpy

cl25kdpy2#

你需要使用 HAVING 条款:

select customer_id, count(distinct order_id) 
from customer_table
group by customer_id
having count(distinct order_id) >= 3

相关问题