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

如何在PieCloudDB中按id聚合JSON列数据

解决方案

你只需要在现有查询基础上,通过GROUP BY分组,并使用string_agg函数将同一id下的字段值拼接为逗号分隔的字符串即可,若要保证拼接顺序和原JSON数组一致,可在聚合函数内指定排序规则:

SELECT
    json_col->>'id' AS id,
    string_agg(json_data.col1, ',' ORDER BY json_data.col1) AS col1,
    string_agg(json_data.col2, ',' ORDER BY json_data.col2) AS col2,
    string_agg(json_data.col3, ',' ORDER BY json_data.col3) AS col3
FROM
    c,
    json_to_recordset(json_col->'data') AS json_data(col1 text, col2 text, col3 text)
GROUP BY json_col->>'id'
ORDER BY id;

关键说明

  1. string_agg(字段名, 分隔符)是PieCloudDB(兼容PostgreSQL)的字符串聚合函数,可将分组内的指定字段值用指定分隔符拼接成单个字符串。
  2. 聚合函数内的ORDER BY子句,能确保拼接后的字符串顺序和原JSON数组中的元素顺序匹配(你的示例场景中按字段值排序即可得到目标顺序)。
  3. GROUP BY json_col->>'id'用于按id分组,最终输出每个id对应的聚合结果。

执行上述SQL后,将得到你需要的结果:

idcol1col2col3
1A,DB,EC,F
2G,JH,KI,L

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:12:11