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

如何优化SQL查询确保first_serv_time晚于Ticket_entry_Time?

解决客户支持工单的服务时间筛选与聚合问题

你的原SQL未过滤掉Serv_doc_time小于等于Ticket_entry_Time的记录,导致计算出的first_serv_time可能不符合要求。以下是几种基于分区/条件聚合的调整方案,适配不同需求:

方案1:仅保留有有效服务记录的工单

如果只需要展示存在Serv_doc_time > Ticket_entry_Time记录的工单,直接在查询中加入过滤条件后聚合即可:

SELECT 
    customer_id, 
    ticket, 
    ticket_entry_time, 
    MIN(serv_doc_time) AS first_serv_time, 
    MAX(serv_doc_time) AS last_serv_time
FROM your_table
WHERE serv_doc_time > ticket_entry_time
GROUP BY customer_id, ticket, ticket_entry_time;

方案2:保留所有工单(含无有效服务记录的)

如果需要展示所有工单,对无符合条件服务记录的工单,first_serv_time和last_serv_time显示为NULL,可以用条件聚合实现:

SELECT 
    customer_id, 
    ticket, 
    ticket_entry_time,
    -- 仅计算大于工单创建时间的最小服务时间
    MIN(CASE WHEN serv_doc_time > ticket_entry_time THEN serv_doc_time END) AS first_serv_time,
    -- 仅计算大于工单创建时间的最大服务时间
    MAX(CASE WHEN serv_doc_time > ticket_entry_time THEN serv_doc_time END) AS last_serv_time
FROM your_table
GROUP BY customer_id, ticket, ticket_entry_time;

方案3:用窗口函数精细控制排序逻辑

如果需要确保first_serv_time是工单中第一条符合条件的服务记录(比如存在相同时间的记录需按其他维度排序),可以用窗口函数先标记有效记录的顺序,再聚合:

WITH ranked_records AS (
    SELECT 
        *,
        -- 按服务时间升序标记符合条件的记录
        ROW_NUMBER() OVER (
            PARTITION BY customer_id, ticket, ticket_entry_time 
            ORDER BY serv_doc_time ASC
        ) AS asc_rank,
        -- 按服务时间降序标记符合条件的记录
        ROW_NUMBER() OVER (
            PARTITION BY customer_id, ticket, ticket_entry_time 
            ORDER BY serv_doc_time DESC
        ) AS desc_rank
    FROM your_table
    WHERE serv_doc_time > ticket_entry_time
)
SELECT 
    customer_id, 
    ticket, 
    ticket_entry_time,
    MAX(CASE WHEN asc_rank = 1 THEN serv_doc_time END) AS first_serv_time,
    MAX(CASE WHEN desc_rank = 1 THEN serv_doc_time END) AS last_serv_time
FROM ranked_records
GROUP BY customer_id, ticket, ticket_entry_time;

方案说明

  • 方案1最简洁,适合只关注有有效服务记录的场景;
  • 方案2保留所有工单数据,无需额外子查询,性能较好;
  • 方案3通过窗口函数支持更复杂的排序规则,比如需要按其他字段(如服务类型)确定"第一条"记录时,可修改ORDER BY子句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:02:50