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

如何基于procedure列特征获取所有关联claim行?SQL

获取包含指定procedure的claim的全部行

需求说明:需要提取所有包含procedure为900的claim对应的全部数据行。例如在下表中,claim 1存在procedure 900,因此要保留claim 1的两行记录;而普通的WHERE procedure = 900只能筛选出procedure为900的那一行,无法拿到同claim下的其他行。

示例数据:

claimprocedure
1900
1600
2500
2600

解决方案

以下是三种常用的SQL实现方式:

方法1:子查询筛选目标claim

通过子查询先找出所有包含procedure 900的claim,再从原表中提取这些claim的全部行:

SELECT t.*
FROM your_table t
WHERE t.claim IN (
    SELECT DISTINCT claim
    FROM your_table
    WHERE procedure = 900
);

方法2:窗口函数标记目标claim

使用窗口函数为每个claim标记是否包含procedure 900,再筛选标记为"存在"的行:

SELECT claim, procedure
FROM (
    SELECT 
        claim, 
        procedure,
        MAX(CASE WHEN procedure = 900 THEN 1 ELSE 0 END) OVER (PARTITION BY claim) AS has_900
    FROM your_table
) sub_query
WHERE has_900 = 1;

方法3:自连接匹配目标claim

通过自连接找到包含procedure 900的claim,再关联原表获取该claim的所有行:

SELECT DISTINCT t.*
FROM your_table t
JOIN your_table t_match 
    ON t.claim = t_match.claim
WHERE t_match.procedure = 900;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:24:04