在 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 链中使用。可以无限次使用。
我可以用 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 链中使用。可以无限次使用。