JSON_ARRAY_AGG

功能概述

将一组值聚合为 JSON 数组,返回 STRING 类型。支持 DISTINCT 去重和 ORDER BY 排序。

语法

JSON_ARRAY_AGG([DISTINCT] <expr> [WITHIN GROUP (ORDER BY <expr> [ASC|DESC])])

参数说明

  • <expr>
    <expr>
    :要聚合的列或表达式。
  • DISTINCT
    DISTINCT
    :对值去重后再聚合,结果顺序不保证。
  • WITHIN GROUP (ORDER BY ...)
    WITHIN GROUP (ORDER BY ...)
    :指定数组元素的排列顺序。

使用示例

-- 基本用法 SELECT json_array_agg(v) FROM (VALUES (1),(2),(3)) t(v); -- [1,2,3] -- 指定排序 SELECT json_array_agg(v WITHIN GROUP (ORDER BY v DESC)) FROM (VALUES (3),(1),(2)) t(v); -- [3,2,1] -- DISTINCT 去重(结果顺序不保证) SELECT json_array_agg(DISTINCT v) FROM (VALUES (1),(2),(1),(3)) t(v); -- [2,1,3] -- GROUP BY 分组 SELECT k, json_array_agg(v) FROM (VALUES ('x',1),('x',2),('y',3)) t(k,v) GROUP BY k; -- x | [1,2] -- y | [3]

相关文档

联系我们
预约咨询
微信咨询
电话咨询