我有一个如下表
FK_OrgId , FK_UserId
3 , 74
1 , 74
1 , 74
3 , 4
4 , 5
1 , 5
Run Code Online (Sandbox Code Playgroud)
我正在尝试计算FK_OrgId,但我必须消除重复.所以,我想要一个像这样的结果
FK_OrgId, count
3 , 2
1 , 2
4 , 1
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Joh*_*Woo 28
这里的关键是在DISTINCT内部使用,COUNT()因此它只计算唯一值.
SELECT FK_OrgId, COUNT(DISTINCT FK_UserId)
FROM TableName
GROUP BY FK_OrgId
Run Code Online (Sandbox Code Playgroud)
OUTPUT
?????????????????????????
? FK_ORGID ? TOTALCOUNT ?
?????????????????????????
? 1 ? 2 ?
? 3 ? 2 ?
? 4 ? 1 ?
?????????????????????????
Run Code Online (Sandbox Code Playgroud)
您应该使用distinct关键字以避免重复
select t.FK_OrgId, count(distinct t.FK_UserId)
from TableName as t
group by t.FK_OrgId
Run Code Online (Sandbox Code Playgroud)