按另一个计数(My)SQL选择计数组

时间:2016-05-18 15:21:45

标签: mysql sql select count group-by

假设我有一张用户列出汽车的表格。

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()

提前谢谢!

1 个答案:

答案 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;