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

如何在Snowflake中按员工拼接所有关联城市并逐行展示?

在Snowflake中按员工拼接所有城市并在每行展示

需求是将每位员工的所有城市值拼接为字符串,同时在该员工的每一条记录中展示这个拼接结果。

原始数据表

employeecitycolor
johnmontrealblue
johnnew yorkyellow
johnyukonred
marksan franciscoorange
markbaltimorepurple
ivanlondonblack

期望结果表

employeecitycolor
johnmontreal ,new york ,yukonblue
johnmontreal ,new york ,yukonyellow
johnmontreal ,new york ,yukonred
marksan francisco,baltimoreorange
marksan francisco,baltimorepurple
ivanlondonblack

解决方案

使用Snowflake内置的LISTAGG()窗口函数即可实现,该函数能按指定分组拼接字段值,并在每组的每一行返回拼接结果:

SELECT
    employee,
    LISTAGG(city, ', ') WITHIN GROUP (ORDER BY city) OVER (PARTITION BY employee) AS city,
    color
FROM
    your_table_name;

参数说明:

  • LISTAGG(city, ', '):指定拼接字段为city,分隔符使用, (可根据需求调整,比如匹配示例格式可改成' ,')
  • WITHIN GROUP (ORDER BY city):可选参数,用于定义拼接时城市的排序顺序,不需要特定顺序可省略
  • OVER (PARTITION BY employee):按employee字段分组,确保每个员工的所有城市被拼接成一个字符串,且该员工的每一行都会显示这个结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:25:47