我想知道如何通过mysql查询解决以下问题,但我真的不知道如何继续我的第一次计数。
在表格中有用户ID和他们拥有的项目ID。
user_id | item
--------------
12 | 1
11 | 3
34 | 1
12 | 2
34 | 2
9 | 1
12 | 3
如果我按user_id分组并计算user_id,我会得到一个用户列表以及他们赢得了多少项,例如:
user_id | count(user_id) i.e. how many items have they won
-----------------------
9 | 1
11 | 1
12 | 3
34 | 2
我如何反过来计算有多少用户赢得1,2或3项,即。计算计数结果,按user_id计数?
计算答案 0 :(得分:1)
也许我不明白这个问题......难道你不能用这个吗?
SELECT item, COUNT(DISTINCT user_id)
FROM ...
GROUP BY item
相反,如果您只想计算发布的中间结果中的行数,则可以使用如下子查询:
SELECT COUNT(*) FROM (
SELECT user_id, COUNT(user_id) AS count
FROM ...
GROUP BY user_id
) AS intermediate_result
GROUP BY count
答案 1 :(得分:1)
从选择中选择:
select times_won, count(*)
from (
select user_id, count(*) as times_won
from my_table
group by 1
) x
group by 1