提问者:小点点

需要帮助查找查询结果中重复数字的次数


我有一张像下面这样的桌子

item_id   link_id
1         10
1         20
2         100
2         40
2         10
3         10
3         30
4         10
4         20
4         30

我运行查询以查找每个item_id的出现时间

select `item_id`, count(`item_id`)
from `table`
group by `order_id`

这给了我一个结果

item_id   count('item_id')
1         2
2         3
3         2
4         3

但我必须找出结果中每个值有多少次,就像这样

count('item_id')   Occurence
2                  2
3                  2

我应该如何更新查询


共1个答案

匿名用户

使用两个级别的聚合:

select cnt, count(*), min(item_id), max(item_id)
from (select `item_id`, count(`item_id`) as cnt
      from `table`
      group by `order_id`
     ) i
group by cnt;

我还经常向此类查询添加min(item_id),max(item_id),以获取每个计数的示例。