你可以在FAQ中找到原因
以下是您无法使用序列的情况:
对于SELECT语句:
在WHERE子句中
在GROUP BY或ORDER BY子句中
在DISTINCT子句中
与UNION或INTERSECT或MINUS一起使用
在子查询中
此查询引发异常:
SELECT cal_id.nextval , EXTRACT(YEAR FROM start_date) , count(placement_id) FROM placement group by year;
这是因为您无法在带有group by
子句的查询中选择序列值.
此外,一个group by
子句必须包含该子句中的所有非聚合表达式select
,这些表达式不属于您.我猜这year
是别名EXTRACT(YEAR FROM start_date)
,在这种情况下这是你需要的查询:
INSERT INTO placement_cal SELECT cal_id.nextval, year, cnt FROM ( SELECT EXTRACT(YEAR FROM start_date) year, count(placement_id) cnt FROM placement group by EXTRACT(YEAR FROM start_date) );