SQL WHERE для ПОДСЧЕТА в инструкции SELECT, которая имеет ГРУППУ BY

#sql #select #count #group-by #where

#sql #выберите #count #группировать по #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
  

Это мое утверждение. Но мне нужно, чтобы КОЛИЧЕСТВО (fkCaseType), как предполагается, было только при fkCaseType = 1, и для подтверждения было, когда fkcaseType = 2.

Проблема в том, что при выполнении подзапросов у меня возникли проблемы с group by.

Ответ №1:

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

В первом операторе, когда fkCaseType = 1 возвращается 1 значение COUNT then, таким образом, подсчитывается через NULL ,, в противном случае, в противном случае, которое пропускается. Для второго — то же самое.