我被要求找出因龋病而死亡的病人数。
特别是我对如何将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...
)但它不起作用。
顺便说一下,当我创建数据库时,我认为一名患者因此而死亡(:
答案 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