【问题标题】:SQL WHERE for a COUNT within a SELECT statement that has a GROUP BYSQL WHERE 用于具有 GROUP BY 的 SELECT 语句中的 COUNT
【发布时间】:2011-08-31 21:41:22
【问题描述】:
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 Suspected 仅在 fkCaseType=1 和 Confirmed 时出现 fkcaseType=2。

问题是我在哪里进行子查询,我对 group by 有问题。

【问题讨论】:

    标签: sql select count group-by where


    【解决方案1】:
    COUNT(CASE WHEN fkCaseType = 1 THEN 1 END) Suspected,
    COUNT(CASE WHEN fkCaseType = 2 THEN 1 END) Confirmed
    

    在第一条语句中当fkCaseType = 1 - then 返回1 因此被COUNT 计数,否则NULL 被跳过。对于第二个 - 相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-28
      • 2021-02-03
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 2021-04-03
      • 2012-10-20
      • 1970-01-01
      相关资源
      最近更新 更多