postgresql 自定義aggregate function實現reduce

dreambei發表於2016-09-29
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

相關文章