我有一张像下面这样的桌子
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
我应该如何更新查询
使用两个级别的聚合:
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)
,以获取每个计数的示例。