MogDB=# \da+ wm_concat List of aggregate functions Schema | Name | Result data type | Argument data types | Description ------------+-----------+------------------+---------------------+------------- pg_catalog | wm_concat | text | text | (1 row)
SELECT p.proname AS function_name, pg_catalog.pg_get_function_result(p.oid) AS result_type, pg_catalog.pg_get_function_arguments(p.oid) AS argument_types, CASE WHEN p.proisagg THEN 'agg' ELSE 'normal' END AS function_type ,a.aggtransfn,a.aggfinalfn FROM pg_catalog.pg_proc p LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace LEFT JOIN pg_catalog.pg_aggregate a ON a.aggfnoid = p.oid WHERE a.aggfnoid IS NOT NULL AND p.proname like 'wm_concat%';
SELECT p.proname AS function_name, pg_catalog.pg_get_function_result(p.oid) AS result_type, pg_catalog.pg_get_function_arguments(p.oid) AS argument_types, CASE WHEN p.proisagg THEN 'agg' ELSE 'normal' END AS function_type ,a.aggtransfn,a.aggfinalfn FROM pg_catalog.pg_proc p LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace LEFT JOIN pg_catalog.pg_aggregate a ON a.aggfnoid = p.oid WHERE a.aggfnoid IS NOT NULL AND p.proname like 'string_agg%';
SELECT p.proname AS function_name, pg_catalog.pg_get_function_result(p.oid) AS result_type, pg_catalog.pg_get_function_arguments(p.oid) AS argument_types, CASE WHEN p.proisagg THEN 'agg' ELSE 'normal' END AS function_type ,a.aggtransfn,a.aggfinalfn FROM pg_catalog.pg_proc p LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace LEFT JOIN pg_catalog.pg_aggregate a ON a.aggfnoid = p.oid WHERE a.aggfnoid IS NOT NULL AND p.proname like 'listagg%';
function_name | result_type | argument_types | function_type | aggtransfn | aggfinalfn ---------------+-------------+-----------------------------------+---------------+-------------------------------------+------------------ listagg | text | text, text | agg | list_agg_transfn | list_agg_finalfn listagg | text | text | agg | list_agg_noarg2_transfn | list_agg_finalfn listagg | text | smallint, text | agg | int2_list_agg_transfn | list_agg_finalfn listagg | text | smallint | agg | int2_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | integer, text | agg | int4_list_agg_transfn | list_agg_finalfn listagg | text | integer | agg | int4_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | bigint, text | agg | int8_list_agg_transfn | list_agg_finalfn listagg | text | bigint | agg | int8_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | real, text | agg | float4_list_agg_transfn | list_agg_finalfn listagg | text | real | agg | float4_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | double precision, text | agg | float8_list_agg_transfn | list_agg_finalfn listagg | text | double precision | agg | float8_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | numeric, text | agg | numeric_list_agg_transfn | list_agg_finalfn listagg | text | numeric | agg | numeric_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | date, text | agg | date_list_agg_transfn | list_agg_finalfn listagg | text | date | agg | date_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | timestamp without time zone, text | agg | timestamp_list_agg_transfn | list_agg_finalfn listagg | text | timestamp without time zone | agg | timestamp_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | timestamp with time zone, text | agg | timestamptz_list_agg_transfn | list_agg_finalfn listagg | text | timestamp with time zone | agg | timestamptz_list_agg_noarg2_transfn | list_agg_finalfn listagg | text | interval, text | agg | interval_list_agg_transfn | list_agg_finalfn listagg | text | interval | agg | interval_list_agg_noarg2_transfn | list_agg_finalfn (22 rows)
MogDB=# \df string_agg List of functions Schema | Name | Result data type | Argument data types | Type | fencedmode | propackage | prokind ------------+------------+------------------+---------------------+------+------------+------------+--------- pg_catalog | string_agg | bytea | bytea, bytea | agg | f | f | f pg_catalog | string_agg | text | text, text | agg | f | f | f (2 rows)
MogDB=# select wm_concat(name) from test2; wm_concat ----------- 1,2,3 (1 row)
MogDB=# select string_agg(name,',') from test2; string_agg ------------ 1,2,3 (1 row)
MogDB=# select string_agg(name,',' order by id desc ) from test2; select string_agg(name,',' order by id desc ) from test2; string_agg ------------ 3,2,1 (1 row)
MogDB=# select listagg(name,',') within group(order by id desc ) from test2; select listagg(name,',') within group(order by id desc ) from test2; listagg --------- 3,2,1 (1 row)