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

SQL Server:从两张带外键的表获取每个作业的最新版本行

查询每个作业的最新执行版本记录

你当前的SQL存在逻辑问题:窗口函数里按作业ID(j.job_id)排序,无法区分版本的新旧。要获取每个作业的最新版本,需按版本号(job_version_number)倒序排列,再筛选每个分组内行号为1的记录。

修正后的SQL语句

WITH 排名版本 AS (
    SELECT 
        ROW_NUMBER() OVER(PARTITION BY j.job_id ORDER BY jv.job_version_number DESC) AS 行号,
        jv.*,
        j.*
    FROM jobs_internal.job_versions jv
    JOIN jobs_internal.jobs j ON jv.job_id = j.job_id
)
SELECT *
FROM 排名版本
WHERE 行号 = 1;

逻辑说明

  • 用WITH子句创建临时结果集排名版本,通过PARTITION BY j.job_id按作业ID分组
  • 每个分组内按job_version_number(作业版本号)降序排序,最新版本会被标记为行号 = 1
  • 最后筛选行号为1的记录,即可得到每个作业的最新执行版本

示例结果(对应你的数据)

执行后将得到以下两条记录(每个作业的最新版本):

行号作业ID作业版本号作业ID作业名称删除请求时间是否系统作业计划开始时间计划结束时间计划间隔类型计划间隔次数是否启用描述最后作业执行ID
1522C48C9-198F-40F8-BB30-16556C55DAC7125522C48C9-198F-40F8-BB30-16556C55DAC7全库执行NULL00001-01-01 00:00:00.00000009999-12-31 11:59:59.0000000一次性10在所有数据库上执行语句NULL
144228D08-5AD4-4B74-A200-6BCCC10E6B97244228D08-5AD4-4B74-A200-6BCCC10E6B97部分批量加载执行NULL00001-01-01 00:00:00.00000009999-12-31 11:59:59.0000000一次性10在远程数据库中执行部分批量加载操作NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:55:22