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;
i | yml |
---|---|
1 | 1 |
2 | 2 |
3 | 6 |
4 | 24 |
5 | 120 |
6 | 720 |
7 | 5040 |
8 | 40320 |
9 | 362880 |
10 | 3628800 |