我有表“订单”,列ID(id order)和IDU(id user)。 我想这样计算:
50 person have 1 order
30 person have 2 order
etc...
我的代码(不好)
SELECT DISTNICT count(id), count(idu) FROM orders GROUP BY idu
请帮帮我:)。
答案 0 :(得分:3)
我称之为直方图查询的直方图。您想知道有多少用户拥有给定的订单数量。解决方案是使用子查询和group by
两次:
select cnt, count(*), min(idu), max(idu)
from (select idu, count(*) as cnt
from orders
group by idu
) ou
group by cnt;
运行此类查询时,我通常会包含用户ID的最小值和最大值,因此我可以轻松找到用户的示例(通常是那些订单很多的用户)。