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

SQL Server按Workcell聚类并按组内最早时间戳排序结果

解决方案

可以使用窗口函数MIN()结合PARTITION BY实现需求,通过该函数获取每个Workcell组的最早EnteredOn时间作为组的排序依据,再在组内按EnteredOn升序排列。具体SQL语句如下:

SELECT ID, Workcell, EnteredOn
FROM Orders
ORDER BY 
    -- 按每个Workcell组的最早EnteredOn时间确定组的排序顺序
    MIN(EnteredOn) OVER (PARTITION BY Workcell),
    -- 组内按单条记录的EnteredOn升序排列
    EnteredOn;

逻辑说明

  1. MIN(EnteredOn) OVER (PARTITION BY Workcell):该窗口函数会为每条记录计算其所属Workcell组的最早EnteredOn时间。例如T1A组的两条记录,这个计算值均为2024-04-25 13:50:01.990,DTA组的两条记录均为2024-04-25 14:22:55.237。
  2. 外层ORDER BY先按这个组级的最早时间排序,确保同Workcell的记录聚类在一起,且组的顺序由组内最早时间决定;再按单条记录的EnteredOn升序,保证组内记录的顺序符合要求。

执行结果验证

执行上述语句后,将得到符合要求的排序结果:

IDWorkcellEnteredOn
1T1A2024-04-25 13:50:01.990
5T1A2024-04-25 14:51:01.173
2T1B2024-04-25 14:22:18.727
3DTA2024-04-25 14:22:55.237
6DTA2024-04-25 15:22:08.527
4552-8A2024-04-25 14:34:56.890

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:13:37