我有一个查询表,检查用户的所有条目并对这些条目进行分组
SELECT username,
count(userid)
FROM orders
GROUP BY userid
这会返回用户名列表以及他们提交的订单数
username count(userid)
------------------------
test 1
test2 1
test3 3
test4 3
test4 3
test4 3
我想让查询做的是计算有多少用户有X个订单并返回该数字。
从上面的结果来看,有1个订单的用户应该是2个,有3个订单的用户应该是4个。那么等等可以这样做吗?
答案 0 :(得分:3)
我认为您可以在查询中添加类似的内容:
SELECT InnerCount, COUNT(*)
FROM
(
-- your query
SELECT username, count(userid) AS InnerCount
FROM orders
GROUP BY userid
) t1
GROUP BY InnerCount
(警告:多年来没有碰过mysql)
答案 1 :(得分:2)
使用:
SELECT COUNT(*)
FROM (SELECT o.username,
COUNT(o.userid) AS cnt
FROM ORDERS o
GROUP BY o.userid
HAVING cnt = ?) x
替换“?”使用您希望查看具有该计数值的用户数的数字。