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

求有效SQL查询:识别满足特定用药理赔条件的ID(Databricks)

示例数据表

假设你的理赔记录表名为claims,数据如下:

ID药物名称服务日期
111aaa2023-01-01
111aaa2023-01-15
111bbb2023-02-01
111bbb2023-02-20
111ccc2023-03-01
222ddd2023-01-05
222ddd2023-01-20
222eee2023-02-10
符合需求的Databricks SQL查询

以下两种查询分别满足仅输出ID、输出所有符合条件的理赔记录的需求:

仅输出符合条件的ID

WITH valid_drug_per_id AS (
    SELECT 
        ID,
        药物名称
    FROM claims
    GROUP BY ID, 药物名称
    HAVING COUNT(DISTINCT 服务日期) >= 2
)
SELECT ID
FROM valid_drug_per_id
GROUP BY ID
HAVING COUNT(DISTINCT 药物名称) >= 2;

输出符合条件的所有理赔记录(排除ccc这类不符合的药物行)

WITH valid_drug_per_id AS (
    SELECT 
        ID,
        药物名称
    FROM claims
    GROUP BY ID, 药物名称
    HAVING COUNT(DISTINCT 服务日期) >= 2
),
valid_ids AS (
    SELECT ID
    FROM valid_drug_per_id
    GROUP BY ID
    HAVING COUNT(DISTINCT 药物名称) >= 2
)
SELECT c.*
FROM claims c
JOIN valid_drug_per_id vd ON c.ID = vd.ID AND c.药物名称 = vd.药物名称
JOIN valid_ids vi ON c.ID = vi.ID;
逻辑说明
  1. valid_drug_per_id 临时表:按ID和药物分组,过滤掉服务日期不足2个的药物(比如ID111的ccc、ID222的eee)。
  2. 后续分组统计:对筛选后的有效药物按ID分组,只保留拥有≥2种有效药物的ID。
  3. 若需输出具体理赔记录,通过关联原表和筛选结果,确保仅保留符合条件的ID与药物对应的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:42:23