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

使用SQL窗口函数将分组首行运行名填充到同组所有行

正确SQL实现方案

你原来的代码做了分组首尾行过滤,所以只能拿到每个ID的两行数据,要实现全部分组行填充首行日志作为NAME,使用FIRST_VALUE()窗口函数即可,该函数可以返回每个ID分区下排序后的第一个值,直接作为新增的NAME字段即可。

方案1:直接使用首行完整LOG作为NAME

select 
    ID,
    LOG,
    FIRST_VALUE(LOG) over (partition by ID order by LOG asc) as NAME
from combined
order by ID, LOG asc;

方案2:提取Begin run 'xxx'中的任务名作为NAME

不同数据库的正则提取函数略有差异,以下以MySQL为例,提取单引号包裹的任务名称:

select 
    ID,
    LOG,
    REGEXP_SUBSTR(
        FIRST_VALUE(LOG) over (partition by ID order by LOG asc),
        '''([^'']+)''',
        1, 1, null, 1
    ) as NAME
from combined
order by ID, LOG asc;

注意:如果你的表中有日志生成时间、日志序号这类字段,建议把窗口函数中order by LOG替换为对应的时序字段,避免LOG内容排序和实际运行顺序不一致导致取值错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:24:01