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

Snowflake中按GROUP和ROLE合并JSON嵌套数组字段的实现

Snowflake JSON解析:合并同组角色的权限字符串

直接修改现有查询,通过GROUP BY分组,并使用Snowflake的LISTAGG函数将同一GROUP和ROLE对应的所有merged_actions拼接成单个字段:

SELECT 
    GROUP,
    ROLE,
    LISTAGG(
        CONCAT('[Resource: ', value:Resource::string, '= Action: ', value:Action::string, ']'),
        ','
    ) AS merged_actions
FROM GROUP_PERMISSIONS,
LATERAL FLATTEN(INPUT => merged_json:Statement)
GROUP BY GROUP, ROLE;

补充说明:

  • LISTAGG函数会将分组内的所有merged_actions值,按照指定的分隔符(这里用逗号,)拼接成一个字符串,完全匹配你期望的结果格式。
  • 如果需要保留原Statement数组中元素的顺序,可以在LISTAGG中添加排序规则:
LISTAGG(
    CONCAT('[Resource: ', value:Resource::string, '= Action: ', value:Action::string, ']'),
    ','
) WITHIN GROUP (ORDER BY index) AS merged_actions

(index是FLATTEN函数默认返回的列,代表原数组中元素的位置)

修改后的查询会将同一GROUP和ROLE的多行权限结果合并为单行的单个字段,与你给出的期望结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:07:02