我有一个表patient_details
,该表具有ID,diagnostic_date和诊断码。唯一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
答案 0 :(得分:1)
这可能会达到目的:
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)
这将确保:
患者至少有diagnosis_code = 5
条记录,而另一条diagnosis_code = 10
他们首次被诊断为代码5
的日期小于他们最后被诊断为5.1
的日期
样本数据:
id | diagnosis_date | diagnosis_code :----- | :------------- | -------------: PT2073 | 2015-02-28 | 4.00 PT2073 | 2019-02-28 | 5.10 PT2013 | 2015-04-28 | 1.00 PT2013 | 2017-02-11 | 5.00 PT2013 | 2017-07-11 | 5.10
结果:
| id | | :----- | | PT2013 |