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

如何新增latest_rev列判断对应ProjectID的Revision是否为最新版本

需求实现方案

你可以通过窗口函数快速实现该逻辑,优先推荐这种写法,代码简洁且执行效率更高:

SELECT 
    ProjectID,
    Revision,
    Revision = MAX(Revision) OVER (PARTITION BY ProjectID) AS latest_rev
FROM Project_Table

逻辑说明

  • MAX(Revision) OVER (PARTITION BY ProjectID)是窗口函数,会按ProjectID分组,计算每个分组下的最大Revision值,该值会同步到对应分组的每一行数据上
  • 直接将当前行的Revision和分组最大值做等值判断,得到的布尔值就是你需要的latest_rev字段:同ProjectID下Revision最大的行返回True,其余返回False

如果你使用的是不支持窗口函数的旧版数据库(比如MySQL 8.0以下版本),可以用子查询关联的方式实现:

SELECT 
    p.ProjectID,
    p.Revision,
    p.Revision = m.max_rev AS latest_rev
FROM Project_Table p
LEFT JOIN (
    SELECT ProjectID, MAX(Revision) AS max_rev 
    FROM Project_Table 
    GROUP BY ProjectID
) m ON p.ProjectID = m.ProjectID

注:你原查询中写的Product ID为笔误,实际查询时请使用表结构对应的ProjectID字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:39:02