在AWS Athena上,我尝试使用WITH子句重用计算的数据,例如
WITH temp_table AS (...)
SELECT ...
FROM temp_table t0, temp_table t1, temp_table t2
WHERE ...
如果查询速度很快,则“已扫描的数据”将通过屋顶。好像每次temp_table
子句中都引用FROM
一样。
如果我单独创建一个临时表并在查询中多次使用它,我看不到这个问题。
有没有一种方法可以真正多次重用子查询而不会带来任何损失?