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

如何用SQL计算进程运行时长并合并同类型连续记录

SQL 解决方案:合并连续相同Type的记录

要实现合并连续相同Type的重复记录、明确各时间段运行信息的需求,我们需要先补全空的Result字段(将其填充为同Type后续的有效时间段),再使用间隙与岛屿技术分组聚合:

  1. 对每条记录,填充同Type下最近的非空Result值(向前补全)
  2. 基于Type和补全后的Result生成分组ID,识别连续的同时间段同Type记录
  3. 对每个分组,取最早的Start时间和对应的Result

以下是对应的SQL查询语句(假设表名为run_records):

WITH filled_result AS (
    SELECT 
        Type,
        Start,
        Result,
        -- 补全同Type下最近的非空Result值
        LAST_VALUE(Result IGNORE NULLS) OVER (
            PARTITION BY Type 
            ORDER BY Start 
            ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
        ) AS filled_result
    FROM run_records
),
grouped_records AS (
    SELECT 
        Type,
        Start,
        filled_result,
        -- 生成分组ID,区分不同时间段的同Type记录
        ROW_NUMBER() OVER (ORDER BY Start) - 
        ROW_NUMBER() OVER (PARTITION BY Type, filled_result ORDER BY Start) AS group_id
    FROM filled_result
)
SELECT 
    Type,
    MIN(Start) AS Start,
    filled_result AS Result
FROM grouped_records
GROUP BY Type, filled_result, group_id
ORDER BY MIN(Start);

结果说明

执行该查询后,会得到与需求匹配的结果:

TypeStartResult
A2:022:00 - 2:30
B2:302:30 - 2:46
A2:462:46 - 3:00
A3:003:00 - 4:00
A4:004:00 - 5:00

如果需要按小时维度统计各Type的运行时长,可以进一步解析Result字段的起止时间,计算每个小时内的运行时长总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:05:20