【问题标题】:Finding the number of patients who died because of caries查找因龋齿而死亡的患者人数
【发布时间】:2017-02-24 19:29:49
【问题描述】:

我被要求找出死于龋齿的患者人数。

尤其是我对如何将COUNT()SELECT 子句一起使用感到有些困惑。

入院-诊断:

Adm_ID //Admission Number(入院)

Diag_ID //诊断ID

录取:

Adm_ID //Admission Number(入院)

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...)但它不起作用。

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

【问题讨论】:

    标签: mysql


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-16
        • 1970-01-01
        • 2012-05-02
        • 2019-07-27
        • 2017-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多