ARRAY_AGG

功能概述

将一组值聚合为 ARRAY 类型。支持 DISTINCT 去重和 WITHIN GROUP ORDER BY 排序。与

COLLECT_LIST
COLLECT_LIST
功能相同,
ARRAY_AGG
ARRAY_AGG
是 SQL 标准写法。

语法

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

参数说明

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

使用示例

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

相关文档

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