Поиск количества пациентов, умерших из-за кариеса

#mysql

#mysql

Вопрос:

Меня просят найти количество пациентов, умерших из-за кариеса.

В частности, я несколько смущен тем, как использовать COUNT() вместе с SELECT предложением.

Прием-Диагностика:

Adm_ID // Номер поступления (госпитализация)

Diag_ID //Идентификатор диагноза

Прием:

Adm_ID // Номер поступления (госпитализация)

Pat_ID //Идентификатор пациента

Date_Adm // Дата поступления

Date_Discharge //Дата выписки

Health_ID // Состояние здоровья пациента при выписке

Моя попытка:

Сначала из таблицы Прием-Диагностика я получил тех пациентов, которые попали в больницу из-за кариеса

 SELECT *
FROM Adm_Diag
WHERE Diag_ID = 900 /*900 code for caries
 

Затем я нахожу идентификаторы приема, для которых состояние здоровья пациентов при выписке «Умерло»

 SELECT * 
FROM Admission 
WHERE Health_ID = 23 /* 23: code for 'Die'
 

Затем я объединил эти две таблицы и нашел те идентификаторы приема, в которых пациент умер из-за кариеса

 SELECT e1.Adm_ID, Diag_ID, Health_ID
FROM (SELECT *FROM Adm_diag WHERE diag_ID = 900) e2, 
     (SELECT *FROM admission WHERE Health_id=23) e1
WHERE e2.Adm_ID=e1.Adm_ID
 

Но у меня возникли проблемы с частью «подсчета». Я действительно не представляю, как использовать предложение count и select одновременно. Я пытался поместить все в count ( COUNT(SELECT e1.Adm_ID, Diag_ID, Health_ID... ), но это не работает.

Кстати, когда я создавал базу данных, я поместил, что один пациент умер из-за этого (:

Ответ №1:

Вы могли бы использовать count(*) с group by

 SELECT e1.Adm_ID, e1.Diag_ID, e2.Health_ID, coun(*)
FROM  Adm_diag as a
INNER JOIN admission on e1.Adm_ID = e.Adm_ID
WHERE e1.Diag_ID = 900
AND e2.Health_ID = 23
group by e1.Adm_ID, e1.Diag_ID
 

Ответ №2:

Можете ли вы попробовать :

 select count(*) 
from Adm_diag ad
inner join admission a
on  ad.Adm_ID = a.Adm_ID
where ad.diag_ID = 900 and a.Health_id=23