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

本地SQL视图迁移Databricks时string_agg函数转换方法咨询

Databricks SQL 替换 string_agg 函数方案

你用到的string_agg(field_name, ', ')在Databricks SQL中可以直接用array_join + collect_list的组合实现等价转换,写法如下:

array_join(collect_list(field_name), ', ')
  • collect_list(字段名):将分组内指定字段的所有值按原有顺序收集为数组,保留重复值
  • array_join(数组, 分隔符):将数组内的所有元素用指定分隔符拼接为单个字符串,完全匹配string_agg的输出逻辑

常见扩展场景适配

带排序的拼接

如果原string_agg需要指定拼接顺序,比如原写法为string_agg(field_name, ', ' order by create_time desc),转换后写法为:

array_join(collect_list(field_name order by create_time desc), ', ')

去重拼接

如果需要对拼接的内容自动去重,将collect_list替换为collect_set即可:

array_join(collect_set(field_name), ', ')

完整示例对比

原SQL(支持string_agg的语法):

select 
  user_id,
  string_agg(order_id, ', ') as order_ids
from orders
group by user_id

转换后Databricks SQL写法:

select 
  user_id,
  array_join(collect_list(order_id), ', ') as order_ids
from orders
group by user_id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:08