在WITH语句中创建的临时表可以引用同一WITH语句中的其他表吗?



我可以从另一个WITH表引用一个WITH表吗?

例如

WITH temp1 AS (
        SELECT *
        FROM a
        ),
     temp2 AS (
        SELECT DISTINCT ID
        FROM temp1
        )
SELECT *
FROM temp1, temp2

注意temp2如何引用temp1。

我的目标是在temp1中有几个函数,然后从temp1的结果执行聚合。

您所使用的正确术语是公共表表达式,通常缩写为CTE。这些不是临时表。即使它们被物化了(也就是说,保存了执行的结果),结果也只能在单个查询中使用。

你的问题的答案是,以前的CTE可以在CTE链的后面使用。可以根据需要多次使用

最新更新