计算mysql计数的结果?

时间:2011-12-29 10:17:25

标签: mysql count group-by

我想知道如何通过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计数?

计算

2 个答案:

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