如何在Redshift / Postgres中为两个查询重用WITH子句的结果?

时间:2016-09-01 17:57:06

标签: database postgresql amazon-redshift

(询问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子句的结果(即嵌入式选择)

0 个答案:

没有答案