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

按Name、Project Name分组查询最新部署版本的SQL实现需求

多字段分组获取最新部署记录的SQL解决方案

我有如下部署记录表格:

NameProject NameVersion deployedDeployment date
JohnCar1.9.82022-09-23
JohnCar2.2.42022-10-15
JohnCar2.2.5-beta32022-10-14
JohnPlane4.9.3452020-03-12
JohnPlane6.7.892022-05-05
JackPlane6.7.892022-05-05
JackPlane6.52022-05-07
JackDog4.6.62022-08-23
JackPlane6.7.892022-05-05
...

需要编写SQL查询,按Name和Project Name分组,每组仅返回最后部署的记录,包含对应版本、部署日期,以及其他未展示的字段。期望输出如下:

NameProject NameVersion deployedDeployment date
JohnCar2.2.42022-10-15
JohnPlane6.7.892022-05-05
JackPlane6.52022-05-07
JackDog4.6.62022-08-23
...

此前尝试过多种单字段分组方案,但无法满足多字段分组且返回完整字段的需求。


解决方案

使用ROW_NUMBER()窗口函数,按指定字段分区并排序,筛选每组最新记录:

SELECT t.*
FROM (
    SELECT 
        *,
        ROW_NUMBER() OVER (
            PARTITION BY Name, `Project Name` 
            ORDER BY `Deployment date` DESC
        ) AS rn
    FROM your_table_name
) t
WHERE t.rn = 1;

说明:

  • PARTITION BY Name, \Project Name``:按两个目标字段进行分组(分区)
  • ORDER BY \Deployment date` DESC`:每个分区内按部署日期倒序排列,最新记录排在首位
  • 外层筛选rn = 1:获取每个分区的第一条记录,即该组的最新部署记录
  • 该方案可直接返回表中所有字段,包括未展示的其他字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:25:16