how to create and aggregate
This commit is contained in:
parent
ac023916ba
commit
fa62dd51af
43
postgres/aggregate.md
Normal file
43
postgres/aggregate.md
Normal file
@ -0,0 +1,43 @@
|
||||
CREATE OR REPLACE FUNCTION public.jsonb_concat(
|
||||
state jsonb,
|
||||
concat jsonb)
|
||||
RETURNS jsonb AS
|
||||
$BODY$
|
||||
BEGIN
|
||||
--RAISE notice 'state is %', state;
|
||||
--RAISE notice 'concat is %', concat;
|
||||
RETURN state || concat;
|
||||
END;
|
||||
$BODY$
|
||||
LANGUAGE plpgsql VOLATILE
|
||||
COST 100;
|
||||
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.jsonb_concat_distinct_arr(
|
||||
state jsonb,
|
||||
concat jsonb)
|
||||
RETURNS jsonb AS
|
||||
$BODY$
|
||||
BEGIN
|
||||
--RAISE notice 'state is %', state;
|
||||
--RAISE notice 'concat is %', concat;
|
||||
RETURN SELECT jsonb_agg(state || concat;
|
||||
END;
|
||||
$BODY$
|
||||
LANGUAGE plpgsql VOLATILE
|
||||
COST 100;
|
||||
|
||||
|
||||
DROP AGGREGATE IF EXISTS public.jsonb_arr_aggc(jsonb);
|
||||
CREATE AGGREGATE public.jsonb_arr_aggc(jsonb) (
|
||||
SFUNC=public.jsonb_concat,
|
||||
STYPE=jsonb,
|
||||
INITCOND='[]'
|
||||
);
|
||||
|
||||
DROP AGGREGATE IF EXISTS public.jsonb_obj_aggc(jsonb);
|
||||
CREATE AGGREGATE public.jsonb_obj_aggc(jsonb) (
|
||||
SFUNC=public.jsonb_concat,
|
||||
STYPE=jsonb,
|
||||
INITCOND='{}'
|
||||
);
|
Loading…
Reference in New Issue
Block a user