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

如何查询患者首次变更的所属机构org_id

实现思路
  • 第一步:对每个患者的所有理赔记录按日期升序排序,同时取到该患者的首个所属机构
  • 第二步:筛选出所有机构不等于首个机构的记录,取时间最早的那条,对应的机构就是首次更换的新机构
  • 第三步:拼接字段输出结果即可
参考SQL实现(支持所有带窗口函数的数据库,如MySQL 8.0+、PostgreSQL、Hive等)
WITH patient_org_rank AS (
    -- 给每个患者的记录按日期排序,同时标记该患者的初始机构
    SELECT 
        org_id,
        patient_id,
        date,
        FIRST_VALUE(org_id) OVER (PARTITION BY patient_id ORDER BY date ASC) AS first_org
    FROM 你的表名
),
changed_org_rank AS (
    -- 给所有机构变更记录按时间排序
    SELECT 
        first_org AS org,
        patient_id AS patient,
        org_id AS new_org,
        ROW_NUMBER() OVER (PARTITION BY patient_id ORDER BY date ASC) AS change_rn
    FROM patient_org_rank
    WHERE org_id != first_org
)
-- 取每个患者第一条变更记录就是首次更换的机构
SELECT org, patient, new_org 
FROM changed_org_rank 
WHERE change_rn = 1;
适配单患者场景简化版

如果只需要查询单个患者的结果,可以直接简化写法:

SELECT 
    (SELECT org_id FROM 你的表名 WHERE patient_id = 455259 ORDER BY date ASC LIMIT 1) AS org,
    patient_id AS patient,
    org_id AS new_org
FROM 你的表名
WHERE patient_id = 455259 
AND org_id != (SELECT org_id FROM 你的表名 WHERE patient_id = 455259 ORDER BY date ASC LIMIT 1)
ORDER BY date ASC
LIMIT 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:36:05