11

我有一张如下表

 FK_OrgId , FK_UserId
 3 , 74
 1 , 74
 1 , 74
 3 , 4
 4 , 5
 1 , 5

我正在尝试计算 FK_OrgId 但我必须消除重复项。所以,我想要一个像

 FK_OrgId, count
 3 , 2
 1 , 2
 4 , 1

有什么建议么?

4

2 回答 2

34

这里的关键是使用DISTINCTinside COUNT(),所以它只会计算唯一值。

SELECT  FK_OrgId, COUNT(DISTINCT FK_UserId)
FROM    TableName
GROUP   BY FK_OrgId

输出

╔══════════╦════════════╗
║ FK_ORGID ║ TOTALCOUNT ║
╠══════════╬════════════╣
║        1 ║          2 ║
║        3 ║          2 ║
║        4 ║          1 ║
╚══════════╩════════════╝
于 2013-04-21T17:19:52.797 回答
4

您应该使用distinct关键字以避免重复

select  t.FK_OrgId, count(distinct t.FK_UserId)
from    TableName as t
group by t.FK_OrgId
于 2013-04-21T17:20:49.147 回答