统计唯一行

时间:2015-10-20 14:51:46

标签: sql database sqlite

我遇到了这个问题,即我试图按唯一值计算条目数。

SELECT table1.PID, table2.CID

FROM table1 

INNER JOIN table2 using (OID)

WHERE table1.PID IN (
    SELECT table1.PID
    FROM table1 
    JOIN table2 using (OID)
    WHERE table2.CID = 'A'
) AND table2.CID != 'A'

我想要做的是计算唯一table2.CID条目的数量。

注意:我需要对重复值进行分组。

只是为了帮助,这是我作为输出得到的表的图片。我想要的是唯一ID值上每个名称的计数。所以ERNSH应该返回7而不是15。

enter image description here

1 个答案:

答案 0 :(得分:2)

您希望每个CID有一条记录,因此按CID分组。然后使用COUNT。如您想要计算不同的值,请使用COUNT(DISTINCT):

SELECT COUNT(DISTINCT table1.PID), table2.CID
FROM table1 
INNER JOIN table2 using (OID)
WHERE table1.PID IN (
    SELECT table1.PID
    FROM table1 
    JOIN table2 using (OID)
    WHERE table2.CID = 'A'
) AND table2.CID != 'A'
GROUP BY table2.CID;