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

求助:编写SQL识别DB2中SubKey=1且重复的关联记录

DB2 SQL 解决方案

原数据集

GUIDIDKeySubKey
ABC-123-DEF1234567201
ABC-123-DEF1234567221
ABC-123-DEF1234567212
ABC-123-DEF1234568221
ABC-124-DEF1234667212
ABC-124-DEF1234668222
ABC-125-DEF1234767211
ABC-125-DEF1234768221

期望输出

GUIDIDKeySubKey
ABC-123-DEF1234567201
ABC-123-DEF1234567221
ABC-123-DEF1234567212
ABC-123-DEF1234568221
ABC-125-DEF1234767211
ABC-125-DEF1234768221

实现方案

方案1:子查询关联

先筛选出符合条件的GUID,再关联原表获取完整数据:

SELECT t.*
FROM your_table t
JOIN (
    SELECT GUID
    FROM your_table
    WHERE SubKey = 1
    GROUP BY GUID
    HAVING COUNT(*) > 1
) filtered_guids ON t.GUID = filtered_guids.GUID
ORDER BY t.GUID, t.ID, t.SubKey;

方案2:窗口函数(更高效)

通过窗口函数一次性统计每个GUID下SubKey=1的记录数,再筛选结果:

SELECT GUID, ID, Key, SubKey
FROM (
    SELECT 
        *,
        COUNT(CASE WHEN SubKey = 1 THEN 1 END) OVER (PARTITION BY GUID) AS subkey1_count
    FROM your_table
) t
WHERE subkey1_count > 1
ORDER BY GUID, ID, SubKey;

两种方案均适用于DB2数据库,窗口函数方案仅需扫描一次表,在数据量较大时性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:45:39