create or replace function lmy(first INTEGER, item INTEGER) returns INTEGER as $$ BEGIN return first * item; END; $$ LANGUAGE plpgsql; create aggregate yml(INTEGER) ( sfunc = lmy, stype = INTEGER, initcond = 1 );
isnp=# select i, yml(i) over (order by i) from generate_series(1,10) i;sql
i | yml |
---|---|
1 | 1 |
2 | 2 |
3 | 6 |
4 | 24 |
5 | 120 |
6 | 720 |
7 | 5040 |
8 | 40320 |
9 | 362880 |
10 | 3628800 |