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

row_number()降序查询时如何无需额外join插入min(created)统计字段

解决方案

你可以直接在原有窗口函数逻辑的基础上新增聚合类窗口函数计算同一机场的最早创建时间,无需额外CTE和JOIN操作,修改后的查询代码如下:

declare @Tickets table
(
    Airport varchar(10),
    TicketNum varchar(10),
    Created date,
    Modified date,
    LastModified date,
    Modified_By varchar(10),
    TicketStatus varchar(10), 
    AssignedTo varchar(10)
)
insert into @Tickets
select 'JFK', '001', '9/25/2021', '9/26/2021', '9/29/2021', 'Jimmy', 'Open', 'Ralph' union
select 'EWR', '001', '9/25/2021', '9/26/2021', '9/29/2021', 'Jimmy', 'Open', 'Ralph' union
select 'STI', '001', '9/25/2021', '9/26/2021', '9/29/2021', 'Jimmy', 'Open', 'Ralph' union
select 'JFK', '002', '9/28/2021', '9/28/2021', '9/30/2021', 'Mary', 'Open', 'Andrew'

select Airport, First_Created, lastmodified, assignedto, Modified_By
from
(
  select airport, 
    lastmodified, 
    assignedto, 
    Modified_By,
    row_number() over(partition by airport order by lastmodified desc) rn,
    min(Created) over(partition by airport) as First_Created
  from @Tickets
) src
where rn = 1

逻辑说明

这里使用的min(Created) over(partition by airport)是聚合类窗口函数,它会在每个机场的分组内计算所有工单的最早创建日期,同一个机场的所有行都会得到相同的First_Created值,后续筛选出rn=1(最新修改的工单行)的时候,自然就带上了对应机场的最早创建时间。

运行后得到的结果和你预期一致:

Airport   First_Created  lastmodified  assignedto   Modified_By
JFK       2021-09-25     2021-09-30    Andrew       Mary
EWR       2021-09-25     2021-09-29    Ralph        Jimmy
STI       2021-09-25     2021-09-29    Ralph        Jimmy

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:18:00