假设我有一张用户列出汽车的表格。
id | user_id | color
1 | 1 | red
2 | 1 | red
3 | 2 | blue
4 | 2 | red
5 | 3 | red
现在,我想知道每个客户有多少红色汽车,所以我做了这个SQL:
SELECT user_id, COUNT(color)
FROM cars
WHERE color = 'red'
GROUP BY user_id
哪个列出了我:
1 | 2
2 | 1
3 | 1
但我真正想要的是每个计数的数量。类似的东西:
Users with 1 red car : 2
Users with 2 red car : 1
...
那么有没有办法计算我的选择,其中包括按?
分组的count()提前谢谢!
答案 0 :(得分:4)
使用聚合聚合:
SELECT redCount, COUNT(*)
FROM (SELECT user_id, COUNT(color) as redCount
FROM cars
WHERE color = 'red'
GROUP BY user_id
) uc
GROUP BY redCount;