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

查询指定ID分区中TC_No对应的Result不一致的冲突记录

问题描述

现有测试数据如下:

IDTC_NoResult
1tc_1PASS
1tc_2PASS
1tc_3FAIL
1tc_4PASS
1tc_5FAIL
2tc_1FAIL
2tc_2PASS
2tc_3FAIL
2tc_4FAIL
2tc_5FAIL

需要筛选出ID IN (1,2)的记录中,同一TC_No对应不同ID的Result存在冲突的所有记录,预期输出如下:

IDTC_NoResult
1tc_1PASS
1tc_4PASS
2tc_1FAIL
2tc_4FAIL

用户尝试的查询语句:

SELECT * From
(SELECT * from Excel As T1
UNION 
SELECT * from Excel As T2)
As c
where ID in(1,2) order By TC_NO
修正后的查询语句

方法1:使用窗口函数快速定位冲突用例

WITH tc_conflict_check AS (
    SELECT 
        ID, 
        TC_No, 
        Result,
        -- 统计当前TC_No下不同Result的数量
        COUNT(DISTINCT Result) OVER (PARTITION BY TC_No) AS result_type_count
    FROM Excel
    WHERE ID IN (1, 2)
)
SELECT ID, TC_No, Result
FROM tc_conflict_check
WHERE result_type_count > 1
ORDER BY TC_No, ID;

方法2:自关联匹配冲突记录

SELECT DISTINCT t1.*
FROM Excel t1
JOIN Excel t2 
    ON t1.TC_No = t2.TC_No 
    AND t1.ID != t2.ID 
    AND t1.Result != t2.Result
WHERE t1.ID IN (1, 2) AND t2.ID IN (1, 2)
ORDER BY t1.TC_No, t1.ID;
逻辑说明
  • 窗口函数方法:先筛选ID为1、2的记录,再按TC_No分组统计每个测试用例的Result取值种类数,只要种类数大于1,就说明该用例存在Result冲突,直接取出这些记录。
  • 自关联方法:将表与自身关联,匹配同一TC_No、不同ID且Result不同的记录,通过DISTINCT避免重复输出,最终得到冲突的所有记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:05:19