聚合函数

相关介绍

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

函数 → 返回值说明
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) |