You need to enable JavaScript to run this app. MS SQL 同一Date和Time下存在Try=2时优先选取对应行的实现方法
优惠活动
大模型
产品
解决方案
定价
更多

MS SQL 同一Date和Time下存在Try=2时优先选取对应行的实现方法

实现思路
  • 核心逻辑是对相同Date、Time组合的行按Try值降序排序,取每组排序第一的行即可满足优先取Try=2、无则取Try=1的需求,这里用MS SQL内置的ROW_NUMBER()窗口函数即可实现分组排序。
完整实现代码
SELECT Date, Time, Number
FROM (
    SELECT 
        Date, Time, Number, Try,
        -- 按Date+Time分组,组内按Try降序排序,2会排在1前面
        ROW_NUMBER() OVER (PARTITION BY Date, Time ORDER BY Try DESC) AS rn
    FROM DB1
    WHERE Date >= {ts '2021-01-26 00:00:00'}
) t
WHERE rn = 1 -- 取每组第一条
ORDER BY Date, Time
补充说明
  • 该写法天然支持同Date、Time下出现超过2条Try值的场景,默认取Try值最大的记录,无需额外调整逻辑
  • 如果需要保留Try字段用于校验,仅需在最外层SELECT语句中增加Try字段即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 12:18:04