聚合函数

相关介绍

以下是有关聚合函数的具体介绍:

函数 → 返回值 说明
array_agg(arg1: bool) → bool[] 将选定值聚合到数组中。
array_agg(arg1: bytes) → bytes[] 将选定值聚合到数组中。
array_agg(arg1: date) → date[] 将选定值聚合到数组中。
array_agg(arg1: decimal) →decimal[] 将选定值聚合到数组中。
array_agg(arg1: float) → float[] 将选定值聚合到数组中。
array_agg(arg1: inet) → inet[] 将选定值聚合到数组中。
array_agg(arg1: int) → int[] 将选定值聚合到数组中。
array_agg(arg1: interval) → interval[] 将选定值聚合到数组中。
array_agg(arg1: string) → string[] 将选定值聚合到数组中。
array_agg(arg1: time) → time[] 将选定值聚合到数组中。
array_agg(arg1: timestamp) → timestamp[] 将选定值聚合到数组中。
array_agg(arg1: timestamptz) → timestamptz[] 将选定值聚合到数组中。
array_agg(arg1: uuid) → uuid[] 将选定值聚合到数组中。
array_agg(arg1: oid) → oid[] 将选定值聚合到数组中。
array_agg(arg1: varbit) → varbit[] 将选定值聚合到数组中。
avg(arg1: decimal) → decimal 计算选定值的平均值。
avg(arg1: float) → float 计算选定值的平均值。
avg(arg1: int) → decimal 计算选定值的平均值。
bool_and(arg1: bool) → bool 计算集合中所有bool值的“与”操作的结果。
bool_or(arg1: bool) → bool 计算集合中所有bool值的“或”操作的结果。
concat_agg(arg1: bytes) → bytes 连接所有选定值。
concat_agg(arg1: string) → string 连接所有选定值。
count(arg1: anyelement) → int 计算选定元素的数目。
count_rows() → int 计算行数。
json_agg(arg1: anyelement) → jsonb 将值聚合为JSON或JSONB数组。
jsonb_agg(arg1: anyelement) → jsonb 将值聚合为JSON或JSONB数组。
max(arg1: bool) → bool 标识最大选定值。
max(arg1: bytes) → bytes 标识最大选定值。
max(arg1: date) → date 标识最大选定值。
max(arg1: decimal) → decimal 标识最大选定值。
max(arg1: float) → float 标识最大选定值。
max(arg1: inet) → inet 标识最大选定值。
max(arg1: int) → int 标识最大选定值。
max(arg1: interval) → interval 标识最大选定值。
max(arg1: string) → string 标识最大选定值。
max(arg1: time) → time 标识最大选定值。
max(arg1: timestamp) → timestamp 标识最大选定值。
max(arg1: timestamptz) → timestamptz 标识最大选定值。
max(arg1: uuid) → uuid 标识最大选定值。
max(arg1: jsonb) → jsonb 标识最大选定值。
max(arg1: oid) → oid 标识最大选定值。
max(arg1: varbit) → varbit 标识最大选定值。
min(arg1: bool) → bool 标识选定的最小值。
min(arg1: bytes) → bytes 标识选定的最小值。
min(arg1: date) → date 标识选定的最小值。
min(arg1: decimal) → decimal 标识选定的最小值。
min(arg1: float) → float 标识选定的最小值。
min(arg1: inet) → inet 标识选定的最小值。
min(arg1: int) → int 标识选定的最小值。
min(arg1: interval) → interval 标识选定的最小值。
min(arg1: string) → string 标识选定的最小值。
min(arg1: time) → time 标识选定的最小值。
min(arg1: timestamp) → timestamp 标识选定的最小值。
min(arg1: timestamptz) → timestamptz 标识选定的最小值。
min(arg1: uuid) → uuid 标识选定的最小值。
min(arg1: jsonb) → jsonb 标识选定的最小值。
min(arg1: oid) → oid 标识选定的最小值。
min(arg1: varbit) → varbit 标识选定的最小值。
sqrdiff(arg1: decimal) → decimal 计算所选值平均值的平方差之和。
sqrdiff(arg1: float) → float 计算所选值平均值的平方差之和。
sqrdiff(arg1: int) → decimal 计算所选值平均值的平方差之和。
stddev(arg1: decimal) → decimal 计算选定值的标准偏差。
stddev(arg1: float) → float 计算选定值的标准偏差。
stddev(arg1: int) → decimal 计算选定值的标准偏差。
string_agg(arg1: bytes, arg2: bytes) → bytes 使用提供的分隔符连接所有选定值。
string_agg(arg1: string, arg2: string) → string 使用提供的分隔符连接所有选定值。
sum(arg1: decimal) → decimal 计算选定值的总和。
sum(arg1: float) → float 计算选定值的总和。
sum(arg1: int) → decimal 计算选定值的总和。
sum(arg1: interval) → interval 计算选定值的总和。
sum_int(arg1: int) → int 计算选定值的总和。
variance(arg1: decimal) → decimal 计算选定值的方差。
variance(arg1: float) → float 计算选定值的方差。
variance(arg1: int) → decimal 计算选定值的方差。
xor_agg(arg1: bytes) → bytes 计算选定值的按位异或。
xor_agg(arg1: int) → int 计算选定值的按位异或。

示例

以下示例都用相同的一个表(kv),在此进行表数据的展示:

SELECT * from kv;

k | v

+—-+———-+

2 | world

3 | death

4 | !

5 | !

6 | !

8 | hello

示例1:将选定值聚合到数组中。

SELECT array_agg(k) from kv;

array_agg

+———————-+

{2,3,4,5,6,8}

示例2:计算最小值。

SELECT min(k) from kv;

min

+——-+

2 (1 row) |

示例3:连接所有选定值。

SELECT string_agg(v,’-‘) from kv;

string_agg

+————————————-+

world-death-!-!-!-hello

示例4:计算选定值的方差。

SELECT variance(k) from kv;

variance

+———————————-+

4.6666666666666666667

示例5:计算选定值的按位异或。

SELECT xor_agg(k) from kv;

xor_agg

+————-+

14

示例6:计算选定值的标准偏差。

SELECT stddev(k) from kv;

stddev

+———————————-+

2.1602468994692867437 |

  1. row)

示例7:计算所选值平均值的平方差之和。

SELECT sqrdiff(k) from kv;

sqrdiff

+——————————————+

23.33333333333333333333333

示例8:将值聚合为JSON或JSONB数组。

SELECT jsonb_agg(k) from kv;

jsonb_agg

+——————————+

[2, 3, 4, 5, 6, 8] |

  1. row)

示例9:连接所选定的值。

SELECT concat_agg(v) from kv;

concat_agg

+——————————+

worlddeath!!!hello (1 row) |