我已经使用列f_table
和quarter
创建了表sums
。显示错误:
ERROR: syntax error at or near "SELECT".
功能:
CREATE OR REPLACE FUNCTION func4()
RETURNS void AS
$BODY$
BEGIN
insert into f_table values
(
SELECT
tab1.quarter,
sum(tab2.tot)
FROM
tab1
INNER JOIN
tab2
ON
tab1_key=tab2_key
GROUP BY(tab1.quarter)
order by (quarter) asc
distributed by(quarter));
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
任何人都可以帮我吗?提前谢谢。
答案 0 :(得分:0)
正确的语法是INSERT..SELECT,删除VALUES。这只有在f_table有2列时才有效,如果没有,你需要指定列
insert into f_table (somecol,someothercol)
(
SELECT
tab1.quarter,
sum(tab2.tot)
FROM
tab1
INNER JOIN
tab2
ON
tab1.key=tab2.key
GROUP BY(tab1.quarter)
order by (tab1.quarter) asc
distributed by(tab1.quarter))
答案 1 :(得分:0)
它的解决不需要分发,因为它不是一个表创建,它的jus是一个插入。
删除分发后的工作正常。
感谢您的回复。