找出因龋病而死亡的病人数

时间:2016-10-15 12:11:38

标签: mysql

我被要求找出因龋病而死亡的病人数。

特别是我对如何将COUNT()SELECT子句一起使用感到困惑。

  

入学-诊断:

     

Adm_ID //入院号码(入院)

     

Diag_ID //诊断ID

     

入学:

     

Adm_ID //入院号码(入院)

     

Pat_ID //患者ID

     

Date_Adm //录取日期

     

Date_Discharge //出院日期

     

Health_ID //出院时患者的健康

我的尝试:

首先,从表格入院 - 诊断中我得到那些因龋齿而去医院的病人

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

然后我找到患者的入院ID'出院时的健康状况是“死亡”

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

然后我合并了这两张桌子,找到了因龋齿导致病人死亡的入院ID

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(SELECT e1.Adm_ID, Diag_ID, Health_ID...)但它不起作用。

顺便说一下,当我创建数据库时,我认为一名患者因此而死亡(:

2 个答案:

答案 0 :(得分:2)

你可以使用计数(*)和

分组
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

答案 1 :(得分:1)

你可以尝试:

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