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

JQL查询问题:工单年龄分桶时如何仅获取最新状态?

解决方案:基于最新状态变更时间的工单分桶

要实现仅按最后一次进入目标状态的时间进行年龄分桶,需要调整查询逻辑,从匹配「任意一次状态变更」改为锁定「最后一次状态变更」,同时确保工单当前处于目标状态。

核心问题分析

你当前使用的status changed to "Review" before -3d会匹配所有曾在3天前进入过Review状态的工单,完全忽略后续的状态回退和再次变更,所以才会把今日重回Review的工单错误归入3天分桶。

调整后的查询逻辑

以SQL类工单系统为例,核心是先获取每个工单最后一次进入Review状态的时间,再结合当前状态进行分桶:

  1. 子查询获取最后一次Review变更时间
    SELECT ticket_id, MAX(change_timestamp) AS last_review_entry_time
    FROM ticket_status_history
    WHERE new_status = 'Review'
    GROUP BY ticket_id
    
  2. 关联主表进行分桶计算
    SELECT 
        t.ticket_id,
        t.current_status,
        CASE
            WHEN r.last_review_entry_time >= NOW() - INTERVAL 1 DAY THEN '1天内'
            WHEN r.last_review_entry_time >= NOW() - INTERVAL 3 DAY THEN '1-3天'
            ELSE '3天以上'
        END AS age_bucket
    FROM tickets t
    JOIN (
        SELECT ticket_id, MAX(change_timestamp) AS last_review_entry_time
        FROM ticket_status_history
        WHERE new_status = 'Review'
        GROUP BY ticket_id
    ) r ON t.ticket_id = r.ticket_id
    WHERE t.current_status = 'Review' -- 仅保留当前处于Review的工单
    

针对你的场景说明

对于那笔3天前首次进入Review、2天前退回Ongoing、今日重回Review的工单,上述查询会取到今日的Review变更时间,将其归入「1天内」分桶,符合你的需求。

适配不同系统的注意点

如果你的工单系统使用专用查询语言(如Jira JQL),逻辑一致但语法不同:

  • JQL中可结合status = "Review"与status CHANGED TO "Review" AFTER -1d,部分系统需用latest()函数或排序后取第一条记录来锁定最后一次变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:27:11