在下表中,我想计算至少提交一个问题解决方案的人数。
这是表格:
id user_name problem_name 1 john sums 2 john trees 3 john sums 4 martin sums 5 martin trees 6 martin trees 7 jim trees
这是我正在寻找的结果:
sums 2 trees 3
我会按problem_name
进行分组,但仅限于user_name
列相同时。我不知道如何在SQL中编写它。
答案 0 :(得分:1)
使用count(distinct)
:
select problem_name, count(distinct user_name) as count
from mytable
group by problem_name
答案 1 :(得分:0)
select table_2.problem_name, count(*) from
(select user_name, problem_name
from table_1
group by user_name, problem_name) as table_2
group by problem_name
我认为使用子查询比使用distinct
更快,如果你有很多行,但我不确定。