我遇到了这个问题,即我试图按唯一值计算条目数。
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。
答案 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;