SQL WHERE用于具有GROUP BY的SELECT语句中的COUNT

时间:2011-05-24 12:19:57

标签: sql select count group-by where

SELECT COUNT(pkNotification) AS caseTotal
,COUNT(fkCaseType) AS Suspected
, COUNT(fkCaseType) AS Confirmed
, Disease.Name 
FROM [Notification] 
INNER JOIN [Disease] ON Notification.fkDisease=Disease.pkDisease 
GROUP BY Disease.Name

这是我的陈述。但是我需要COUNT(fkCaseType)AS被怀疑只有在fkCaseType = 1时才被怀疑,而对于确认为fkcaseType = 2时。

问题出在我做子查询的地方,我遇到了小组问题。

1 个答案:

答案 0 :(得分:6)

COUNT(CASE WHEN fkCaseType = 1 THEN 1 END) Suspected,
COUNT(CASE WHEN fkCaseType = 2 THEN 1 END) Confirmed

fkCaseType = 1时的第一个语句中 - 然后返回1因此被COUNT计算,NULL否则将被跳过。对于第二个 - 相同。