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

Jira数据导入BigQuery后,如何动态合并相似列成单列?

解决BigQuery中Jira环境标签列动态合并的问题

核心思路

利用BigQuery的动态SQL结合INFORMATION_SCHEMA,自动识别所有匹配命名规则的环境影响列,无需手动维护列名列表,新增标签列会自动被纳入合并范围。

具体实现

1. 动态生成合并逻辑

通过INFORMATION_SCHEMA.COLUMNS筛选出所有以Custom_field__Environment_s__affected__开头的列,然后用STRING_AGG将这些列名拼接成数组表达式,最后用ARRAY_TO_STRING过滤空值并合并为逗号分隔的字符串。

执行以下动态SQL即可直接得到目标结果:

DECLARE column_list STRING;

-- 筛选所有符合命名规则的环境影响列
SET column_list = (
  SELECT STRING_AGG(
    CONCAT('`', column_name, '`'), 
    ', ' ORDER BY CAST(REGEXP_EXTRACT(column_name, r'__(\d+)$') AS INT64)
  )
  FROM `your_project.your_dataset.INFORMATION_SCHEMA.COLUMNS`
  WHERE table_name = 'your_jira_table'
    AND column_name LIKE 'Custom_field__Environment_s__affected__%'
);

-- 动态执行查询,合并列并输出结果
EXECUTE IMMEDIATE FORMAT("""
  SELECT 
    ticket_name,
    ARRAY_TO_STRING(
      [ %s ], 
      ', ' 
      IGNORE NULLS
    ) AS environments_affected
  FROM `your_project.your_dataset.your_jira_table`
""", column_list);

2. 关键细节说明

  • REGEXP_EXTRACT(column_name, r'__(\d+)$')用来提取列名末尾的序号,确保合并时列的顺序和原数据一致。
  • IGNORE NULLS参数会自动忽略空值列,避免合并结果出现多余的逗号。
  • 替换代码中的your_project、your_dataset和your_jira_table为你实际的项目、数据集和表名。

效果

后续新增类似命名的环境标签列(比如Custom_field__Environment_s__affected__5),无需修改SQL,执行上述代码时会自动包含新列并合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:15:33