SQL 有组计数

SQL with group count

这很简单table,我对组计数有疑问。

STUID      DEPT
100        Math
100        History
200        Math
200        History

这是我的查询

select count (distinct(STUID)), DEPT
from table
group by DEPT

数学成绩 2 分,历史成绩 2 分。
我需要为 STUID 计数而不重复,所以结果看起来像

STUID    DEPT
1       Math
1       History

我的目标是按部门统计 stuid(无重复)组

I need count without duplicate for STUID

您的查询已经这样做了:它只计算每个 stuid 一次,即使它在给定部门中出现多次。例如,如果您有以下数据集,您仍然会得到相同的结果(即每个部门计数为 2:

STUID      DEPT
100        Math
100        History
200        Math
200        History
100        Math
100        History
200        Math
200        History

如果您只想要不同的 dept 值,请使用 distinct - 我们可以将文字 1 添加到每一行,但这不是很有用:

select distinct dept from mytable