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

Snowflake中按ID合并多行Variant字段为单个数组的实现方法

Snowflake 实现方案

你要的同ID下多个独立Variant对象合并为Variant数组的分组聚合需求,直接用Snowflake内置的ARRAY_AGG聚合函数就能实现,完全匹配你写的类SQL语义。

实现SQL

假设你的原表名为state_population,执行以下语句即可得到预期结果:

SELECT
  id,
  ARRAY_AGG(STATE_INFO) AS STATE_INFO
FROM state_population
GROUP BY id;

补充说明

  • ARRAY_AGG返回的结果本身就是VARIANT类型的数组,结构和你给出的预期输出完全一致,不需要额外做类型转换
  • 如果需要控制数组内各个state对象的排序规则,可以在函数内加WITHIN GROUP子句指定排序逻辑,比如按state名称排序的写法:
    ARRAY_AGG(STATE_INFO) WITHIN GROUP (ORDER BY STATE_INFO:state::STRING)
    
  • 如果分组内存在STATE_INFO为null的记录,不想把null值纳入最终数组,可以加IGNORE NULLS参数:
    ARRAY_AGG(STATE_INFO) IGNORE NULLS
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:48:17