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

监控各文档最后变更实例中Important列的变更并筛选展示

解决思路与实操示例

我刚好处理过类似的需求,给你整理下具体的实现思路和代码示例,完全贴合你提到的要求:

核心需求回顾

  • 只展示Important列发生变更的行
  • 每个文档(DocNum)仅保留最后一次涉及Important列变更的实例
  • 输出内容需包含:DocNum、changeID、Column Changed

分步实现(以SQL为例,适配大多数数据库)

1. 先筛选出所有Important列的变更记录

首先从变更日志表中,过滤出明确标记Important列变更的行:

-- 筛选所有Important列变更的记录
SELECT DocNum, changeID, `Column Changed`
FROM your_change_log_table
WHERE `Column Changed` = 'Important'

2. 提取每个文档的最后一次Important列变更

因为changeID是连续递增的(代表变更的时间顺序),我们可以通过分组取最大changeID的方式,锁定每个文档最后一次的Important列变更:

-- 最终查询:获取每个文档最后一次Important列变更的记录
WITH important_change_records AS (
    SELECT DocNum, changeID, `Column Changed`
    FROM your_change_log_table
    WHERE `Column Changed` = 'Important'
),
latest_important_changes AS (
    SELECT DocNum, MAX(changeID) AS last_change_id
    FROM important_change_records
    GROUP BY DocNum
)
SELECT 
    icr.DocNum, 
    icr.changeID, 
    icr.`Column Changed`
FROM important_change_records icr
JOIN latest_important_changes lic 
    ON icr.DocNum = lic.DocNum 
    AND icr.changeID = lic.last_change_id

3. 扩展:同时查看每个文档最后两行的变更列

如果还需要兼顾“每个条目最后两行中已更改的列”这个需求,可以用窗口函数先给每个文档的变更记录按时间倒序排名,再筛选出前2条并聚焦Important列的变更:

-- 扩展查询:包含每个文档最后两行变更,且只保留Important列变更的行
WITH ranked_change_records AS (
    SELECT 
        DocNum, 
        changeID, 
        `Column Changed`,
        -- 按文档分组,给变更记录按时间倒序排名
        ROW_NUMBER() OVER (PARTITION BY DocNum ORDER BY changeID DESC) AS change_rank
    FROM your_change_log_table
)
SELECT DocNum, changeID, `Column Changed`
FROM ranked_change_records
WHERE 
    change_rank <= 2 -- 取最后两行变更
    AND `Column Changed` = 'Important' -- 只保留Important列变更的行
ORDER BY DocNum, changeID DESC

关键注意点

  • 如果你的变更日志不是用changeID排序,而是有专门的变更时间字段,把ORDER BY changeID DESC替换成ORDER BY your_change_time_column DESC即可
  • 确保Column Changed字段准确记录了变更的列名,比如当Important列修改时,该字段的值为Important

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:37:18