(询问Redshift的PostgreSQL子集)
这是“我想要一个小马”问题:我知道如何使用显式临时表来执行此操作,但我更愿意避免这种情况。
我想在一个查询中运行两个完全不同的选择(即在一个中生成两个表; - 终止查询)。 为明确起见,我想(ab)使用WITH语法来使用Redshift内部生成的临时表。要回复:
with TempTable as ( some query ),
AnotherTempTable as ( some other query ),
YetAnotherTable as ( some query based on TempTable and AnotherTempTable )
select something-joined-with-The-tables-above, (comma?)
...
select something-else-joined-with-The-tables-above;
能够“输出”WITH子句的结果不仅好,而且理想。即一个尚未发现的修饰符可供选择:
with Stuff as (select blah from ... force_output) ...
再一次,我想要推出两张不同的牌桌,而不仅仅是一张宽阔的外圈,还有很多空位。
这背后的重点是依赖尽可能多的Redshift内部结构。 理论上说,你明确说明的越少,Redshift就可以在内部进行优化。这应该提供更快,更少资源的查询,以及利用亚马逊可能默默放入的任何“新”优化。
这对非常大的数据集非常重要,Redshift就是这个数据集。
Please note that this is NOT a duplicate of this question.这是关于重用with子句的结果(即嵌入式选择)