You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Proc SQL拆分SAS患者就诊数据集 按就诊顺序筛选患者ID

SAS Proc SQL 实现跨院就诊顺序ID筛选方案

实现逻辑

通过数据集自连接匹配同一患者的不同医院就诊记录,校验两次就诊的时间先后关系,再对符合条件的患者ID去重,即可得到两个目标数据集。

完整代码

/* 此处将have替换为你的原始出入院数据集名称 */
proc sql;
/* 生成先到A医院、后到B医院的患者ID数据集 */
create table a_to_b as
select distinct ID
from have a
where exists (
    select 1 from have b
    where a.ID = b.ID
      and a.Hospital = 'A'
      and b.Hospital = 'B'
      and a.Discharge_Date <= b.Admission_Date
);

/* 生成先到B医院、后到A医院的患者ID数据集 */
create table b_to_a as
select distinct ID
from have a
where exists (
    select 1 from have b
    where a.ID = b.ID
      and a.Hospital = 'B'
      and b.Hospital = 'A'
      and a.Discharge_Date <= b.Admission_Date
);
quit;

代码说明

  • 用exists子查询做匹配,相比笛卡尔积自连接运算效率更高,适合大数据量场景
  • 时间判断条件a.Discharge_Date <= b.Admission_Date默认支持出院当天直接到另一家医院入院的场景,如果要求两次就诊必须有间隔,将运算符改为<即可
  • distinct关键字保证每个患者ID仅输出一次,和要求的输出格式完全匹配

内容的提问来源于stack exchange,提问作者Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:48:00