1
我有這樣的選擇查詢列的總和:查找包含窗口函數
SELECT
total,
COALESCE(total - Lag(total)OVER(ORDER BY total), 0) AS dif_total
FROM (select count(*) as total
FROM
tbl_person
left join
tbl_census
on
tbl_census.person_id = tbl_person.person_id
group by extract(year from tbl_census.date)
) abc
有沒有辦法,我能找到列dif_total的總和?
我不能使用Sum(),因爲它包含一個窗口函數。
我試着將列保存到一個數組,因爲我可能可以調用該函數並將數組轉換爲列然後使用Sum()。
但我搞砸了。
這是我對該函數的查詢。
CREATE OR REPLACE function growth() Returns int[] as $$
declare total2 integer[];
BEGIN
SELECT
total,
COALESCE(total - Lag(total)OVER(ORDER BY total), 0) into total2
FROM
(select count(*) as total
from
tbl_person
group by extract(year from bdate)
) abc ;
RETURN total2;
END; $$ LANGUAGE plpgsql;
功能查詢成功運行,並且不顯示任何警告或錯誤,但我想我是做錯了,因爲當我嘗試選擇它,它會說
數組值必須以「 {「或尺寸信息
我在使用postgre中的存儲函數時非常新。
我應該對我的功能做些什麼改變? 或者我有什麼其他方式來總結上面的dif_total列?