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

如何筛选Item顺序异常的RunNumber(Close的Id小于Open的Id)

解决方法

先整理你的Items表结构及数据:

IdNameRunNumber
1Open1
2Close1
1Open2
2Close2
1Close3
2Open3
1Open4
2Close4

以下是两种获取顺序异常RunNumber的SQL实现方法:

方法一:自连接查询

通过表自连接匹配同一RunNumber下的Close和Open记录,直接筛选符合条件的RunNumber:

SELECT DISTINCT a.RunNumber
FROM Items a
INNER JOIN Items b 
    ON a.RunNumber = b.RunNumber
WHERE a.Name = 'Close' 
  AND b.Name = 'Open' 
  AND a.Id < b.Id;

执行后会返回RunNumber = 3,即顺序异常的记录。

方法二:分组聚合查询

先按RunNumber分组提取每组的Open/Close任务Id,再筛选符合条件的分组:

SELECT RunNumber
FROM (
    SELECT 
        RunNumber,
        MAX(CASE WHEN Name = 'Open' THEN Id END) AS OpenId,
        MAX(CASE WHEN Name = 'Close' THEN Id END) AS CloseId
    FROM Items
    GROUP BY RunNumber
) AS grouped_data
WHERE CloseId < OpenId;

子查询完成分组聚合后,主查询判断CloseId是否小于OpenId,同样能得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:13:27