example of aggregate function for product
От | Whit Armstrong |
---|---|
Тема | example of aggregate function for product |
Дата | |
Msg-id | 8ec76080906241344h4c97b996lcd320802cd150b1@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: example of aggregate function for product
Re: example of aggregate function for product |
Список | pgsql-general |
I needed to write a product aggregate function, and just happened to find this example in the nodes to the 8.0 manual: Ansis <ansis_no_ AT inbox.lv>13 Jan 2006 16:41:05 An aggregate multiplication function, an analog of "sum" (the same should be defined also for other numeric types): CREATE OR REPLACE FUNCTION mul2(FLOAT,FLOAT) RETURNS FLOAT AS ' DECLARE a ALIAS FOR $1; b ALIAS FOR $2; BEGIN RETURN a*b; END; ' LANGUAGE plpgsql; CREATE AGGREGATE mul ( sfunc = mul2, basetype = FLOAT, stype = FLOAT, initcond = '1' ); but that example looks pretty different than the ones found in the 8.3 manual (avg for instance): CREATE AGGREGATE avg (float8) ( sfunc = float8_accum, stype = float8[], finalfunc = float8_avg, initcond = '{0,0}' ); and float8_accum is defined like this (in the postgres function list). CREATE OR REPLACE FUNCTION float8_accum(double precision[], double precision) RETURNS double precision[] AS 'float8_accum' LANGUAGE 'internal' IMMUTABLE STRICT COST 1; ALTER FUNCTION float8_accum(double precision[], double precision) OWNER TO postgres; COMMENT ON FUNCTION float8_accum(double precision[], double precision) IS 'aggregate transition function'; Are there any experts out there who have defined a product or cumulative product function that abides best practices who would be willing to share? Thanks, Whit
В списке pgsql-general по дате отправления: