我在一个脚本中多次使用相同的.condarc
而没有任何问题,但我只想仔细检查。
让我们说我的脚本看起来像这样:
cte
使用具有不同;with cte as
(
select provider, count(*) as 'rows_count'
from table1
) select *From cte
;with cte as
(
select fname, count(*) as 'totals'
from table_another
) select *From cte
;with cte as
(
select sum(sales) as 'total_sales
from table_yet_another
) select *From cte
语句的相同cte
是否有任何问题?或者他们应该有不同的名称?
答案 0 :(得分:1)
该名称只需在一个语句中是唯一的。所以你拥有的是好的(如果有点令人困惑),但这不会是:
with cte as
(
select provider, count(*) as 'rows_count'
from table1
), cte as
(
select fname, count(*) as 'totals'
from table_another
) select *From cte
答案 1 :(得分:0)
CTE的范围是声明的本地范围。您可以在不同的语句之间重复它们(但不能在同一个语句中重复两次)。虽然我建议为每一个使用有意义的名称,就像你使用表格一样。
答案 2 :(得分:0)
这不是同一个查询。 cte可能只有一个select语句。这是三个不同的陈述。