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

Can temp tables created in WITH statement reference other tables in the same WITH statement?

我可以用 table 引用另一个 WITH table 吗?

例如

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

注意 temp2 是如何引用 temp1 的。

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

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

您的问题的答案是以前的 CTE 以后可以在 CTE 链中使用。可以无限次使用。