Sql 寻找出现更严重疾病的患者
我有一个表Sql 寻找出现更严重疾病的患者,sql,postgresql,Sql,Postgresql,我有一个表patient\u details,其中包含id、诊断日期和诊断代码。一个唯一的ID可以有多个条目,这意味着他们在不同的时间被诊断出患有不同的疾病 目标:我希望看到患者最终进展到疾病代码5.10。所以我想看看那些首先被诊断为代码5,然后发展到诊断5.10的患者。我不知道如何为每一个独特的病人分离日期,看看谁从最初诊断为5到最终诊断为5.10。我最终只需要从诊断代码5到5.10的患者数量 表格示例: ID |diagnosis_date|diagnosis_code PT2073|
patient\u details
,其中包含id、诊断日期和诊断代码。一个唯一的ID可以有多个条目,这意味着他们在不同的时间被诊断出患有不同的疾病
目标:我希望看到患者最终进展到疾病代码5.10。所以我想看看那些首先被诊断为代码5,然后发展到诊断5.10的患者。我不知道如何为每一个独特的病人分离日期,看看谁从最初诊断为5到最终诊断为5.10。我最终只需要从诊断代码5到5.10的患者数量
表格示例:
ID |diagnosis_date|diagnosis_code
PT2073|2015-02-28 |5
PT2073|2019-02-28 |5.10
PT2013|2015-04-28 |1
PT2013|2017-02-11 |5
PT2013|2017-07-11 |5.10
这可能会起作用:
select id
from patient_details
group by id
having
min(case when diagnosis_code = 5 then diagnosis_date end)
< max(case when diagnosis_code = 5.1 then diagnosis_date end)
结果:
| id |
| :----- |
| PT2013 |
|身份证|
| :----- |
|PT2013|
所以你想让所有患者至少有两个数据集:一个是5,一个是10。包含5的数据集需要比包含10的数据集更早的日期?是的!他们可以有其他诊断,但我只关心他们先有5个,然后有10个。我想知道有多少人有这种进展。这只是为我返回了一些人的所有值reason@Py.rookie89:我在查询中输入了
10
而不是5.1
。除此之外,查询看起来还不错。我在我的答案中加了一个db提琴供你参考。
| id |
| :----- |
| PT2013 |