T-SQL - 选择重新入院(在一段时间内)具有相同诊断的患者

阿斯费曼

我有一个具有以下架构的表:

CREATE TABLE Codes
(
    diagnosis_code CHAR,
    visit_date     DATE,
    visit_id       INT,
    patient_id     int
);

我想输出patient_id,其中病人再次入院(所以不同的S visit_id)与同diagnosis_code在一定时间内(比如15天)。例如,如果我在表中有以下条目:

diagnosis_code visit_date visit_id    patient_id
-------------- ---------- ----------- -----------
A              2018-01-01 1           1
B              2018-01-01 1           1
A              2018-01-07 2           1
C              2018-01-01 3           2
D              2018-01-01 4           3
D              2018-01-20 5           3
E              2018-01-01 6           4
E              2018-01-01 6           4
A              2018-01-07 7           1

查询将仅返回patient_id= 1,其基本原理如下:

  1. 1,因为在visit_id 1之间2,这名患者共享了诊断代码A
  2. 不是 2因为这个病人只被收治了一次。
  3. 不是 3因为该患者虽然因相同的诊断再次入院,但在初次就诊后 15 天内没有再次入院。
  4. 不是 4因为该患者在同一次就诊中具有重复的诊断代码。
  5. 请注意,patient_id=1visit_id=期间因相同的诊断被重新接纳7,但他之前已经被计算过一次。
穿刺者

您可以尝试一个简单的连接,添加您描述的条件:

select
    distinct c.patient_id
  from codes c
  join codes d on d.patient_id = c.patient_id
              and d.visit_id <> c.visit_id
              and d.diagnosis_code = c.diagnosis_code
              and d.visit_date between c.visit_date
                  and dateadd(day, 15, c.visit_date)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

T-SQL - 使用 DateTime 列选择一段时间内每天创建的行数

来自分类Dev

在SQL中从一段时间内的累计总数中查找销售增长

来自分类Dev

优化SQL查询以检索一段时间内的项目数

来自分类Dev

使用SQL检索一段时间内的记录

来自分类Dev

PL SQL查找一段时间内的重复事件

来自分类Dev

如何在一段时间内查找 SQL 数据库条目

来自分类Dev

MySQL从一段时间内选择

来自分类Dev

SQL:一段时间后删除字段值

来自分类Dev

在一段时间内分组

来自分类Dev

在一段时间内显示CFQuery结果

来自分类Dev

查询以查找一段时间内的增长

来自分类Dev

计算一段时间内的因子水平

来自分类Dev

Javascript setinterval在一段时间内

来自分类Dev

一段时间内更改按钮颜色

来自分类Dev

在一段时间内分组

来自分类Dev

Javascript:setInterval在一段时间内?

来自分类Dev

一段时间内的日期计数

来自分类Dev

Javascript setinterval在一段时间内

来自分类Dev

在一段时间内检查SSD的写入

来自分类Dev

一段时间内的频率

来自分类Dev

在一段时间内使用变量的增量

来自分类Dev

一段时间内的计数

来自分类Dev

在一段时间内等待功能?

来自分类Dev

计算一段时间内的记录

来自分类Dev

一段时间内的累计金额

来自分类Dev

在simulink中检查信号在一段时间内是否处于相同的值

来自分类Dev

PostgreSQL在一段时间内选择最大值

来自分类Dev

如果一段时间内有漏洞

来自分类Dev

一段时间内有file_put_contents