MySQL SELECT COUNT GROUP

时间:2016-09-20 10:28:09

标签: php mysql sql group-by

我有表“订单”,列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

请帮帮我:)。

1 个答案:

答案 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的最小值和最大值,因此我可以轻松找到用户的示例(通常是那些订单很多的用户)。