当前位置:Gxlcms > 数据库问题 > PostgreSQL 分组、聚合函数

PostgreSQL 分组、聚合函数

时间:2021-07-01 10:21:17 帮助过:254人阅读

参数类型 返回类型 描述 示例 结果 array_agg(expression) 任意非数组类型 参数类型的数组 将入参包括NULL连接成一个数组 select array_agg(id) from tbl_test; {1,2,3} array_agg(expression) 任意数组类型 入参数据类型

将入参数组连接成更高维度的数组,输入的数组必须是相同的维度,且不允许是空或NULL

select array_agg(array[‘b‘,‘c‘,‘a‘]);  {{b,c,a}} avg(expression) smallint, int, bigint, real, double precision, numeric, or interval 整形返回numeric,浮点型返回double precision,其他和入参类型相同 平均值 select avg(id) from tbl_test; 2.0000000000000000 bit_and(expression) smallintintbigint, or bit 和入参类型相同 所有非NULL输入值的按位与,如果全为NULL则返回NULL select bit_and(id) from tbl_test; 0 bit_or(expression) smallintintbigint, or bit 和入参类型相同 所有非NULL输入值的按位或,如果全为NULL则返回NULL select bit_or(id) from tbl_test; 3 bool_and(expression) bool bool 如果输入全是true则返回true,否则为false select bool_or(id::bool) from tbl_test; t bool_or(expression) bool bool 如果输入至少一个true,则返回true,否则返回false select bool_or((id-1)::bool) from tbl_test; t count(*)   bigint 输入行数 select count(*) from tbl_test; 3 count(expression) any bigint 输入行中非NULL的行数 select count(id) from tbl_test; 3 every(expression) bool bool 功能同bool_and     json_agg(expression) any json 将输入聚合成一个json数组 select json_agg(id) from tbl_test; [1, 2, 3] jsonb_agg(expression) any jsonb 将输入聚合成一个json数组 select jsonb_agg(id) from tbl_test; [1, 2, 3] json_object_agg(name,value) (any, any) json 将输入组成一个key/value对的json对象 select json_object_agg(‘a‘,‘one‘); { "a" : "one" } jsonb_object_agg(name,value) (any, any) jsonb 将输入组成一个key/value对的json对象 select jsonb_object_agg(‘a‘,‘one‘); {"a": "one"} max(expression)     输入最大值

select max(id) from tbl_test;

3 min(expression)     输入最小值 select min(id) from tbl_test; 1 string_agg(expression,delimiter) (texttext) or (byteabytea) 同参数类型 将输入使用delimiter连接成一个text select string_agg(name,‘,‘) from tbl_test;  张三,李四,王五 sum(expression) smallintintbigintrealdouble precisionnumericinterval, or money   输入和 select sum(id) from tbl_test; 6 xmlagg(expression) xml xml   请参考xml类型及其函数   **通用聚合函数** 函数 | 参数类型 | 返回类型 | 描述 | 示例 | 结果 -- | -- | -- | -- | -- | -- array_agg(expression) | 任意非数组类型 | 参数类型的数组 | 将入参包括NULL连接成一个数组 | select array_agg(id) from tbl_test; | {1,2,3} array_agg(expression) | 任意数组类型 | 入参数据类型 | 将入参数组连接成更高维度的数组,输入的数组必须是相同的维度,且不允许是空或NULL | select array_agg(array[‘b‘,‘c‘,‘a‘]); | {{b,c,a}} avg(expression) | smallint, int, bigint, real, double precision, numeric, or interval | 整形返回numeric,浮点型返回double precision,其他和入参类型相同 | 平均值 | select avg(id) from tbl_test; | 2.0000000000000000 bit_and(expression) | smallint, int, bigint, or bit | 和入参类型相同 | 所有非NULL输入值的按位与,如果全为NULL则返回NULL | select bit_and(id) from tbl_test; | 0 bit_or(expression) | smallint, int, bigint, or bit | 和入参类型相同 | 所有非NULL输入值的按位或,如果全为NULL则返回NULL | select bit_or(id) from tbl_test; | 3 bool_and(expression) | bool | bool | 如果输入全是true则返回true,否则为false | select bool_or(id::bool) from tbl_test; | t bool_or(expression) | bool | bool | 如果输入至少一个true,则返回true,否则返回false | select bool_or((id-1)::bool) from tbl_test; | t count(*) | | bigint | 输入行数 | select count(*) from tbl_test; | 3 count(expression) | any | bigint | 输入行中非NULL的行数 | select count(id) from tbl_test; | 3 every(expression) | bool | bool | 功能同bool_and | | json_agg(expression) | any | json | 将输入聚合成一个json数组 | select json_agg(id) from tbl_test; | [1, 2, 3] jsonb_agg(expression) | any | jsonb | 将输入聚合成一个json数组 | select jsonb_agg(id) from tbl_test; | [1, 2, 3] json_object_agg(name,value) | (any, any) | json | 将输入组成一个key/value对的json对象 | select json_object_agg(‘a‘,‘one‘); | { "a" : "one" } jsonb_object_agg(name,value) | (any, any) | jsonb | 将输入组成一个key/value对的json对象 | select jsonb_object_agg(‘a‘,‘one‘); | | | | | | | | | | | | | | | | | | | | | | | | | |

https://www.cnblogs.com/alianbog/p/5674838.html

PostgreSQL 分组、聚合函数

标签:select   参数类型   value   postgre   family   left join   www   sum   mit   

人气教程排行