Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 寻找出现更严重疾病的患者_Sql_Postgresql - Fatal编程技术网

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 |