前者给我错误消息“在其自己的查询级别的 FROM 子句中不允许聚合函数”,而后者是允许的。除非我弄错了,后者等同于前者,因为它只是为v
.
我正在编写一个代码生成器,因此将前者的自然形式重写为后者的人工形式有点繁琐。
但禁止前者的理由是什么?
SELECT * FROM
((SELECT 0 as "v") as "T1"
INNER JOIN LATERAL
(SELECT
SUM("v") as "r"
FROM (SELECT 0) as "T1") as "T2"
ON TRUE) as "T1"
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM
((SELECT 0 as "v") as "T1"
INNER JOIN LATERAL
(SELECT
SUM("v_again") as "r"
FROM (SELECT "v" as "v_again") as "T1") as "T2"
ON TRUE) as "T1"
Run Code Online (Sandbox Code Playgroud)