Amazon Redshift:是不是可以返回多个结果集?
Posted
技术标签:
【中文标题】Amazon Redshift:是不是可以返回多个结果集?【英文标题】:Amazon Redshift: Is it possible to return multiple result set?Amazon Redshift:是否可以返回多个结果集? 【发布时间】:2015-02-05 07:35:01 【问题描述】:我有一个包含多个公用表表达式的复杂查询。除了最终结果集,我是否能够从我在其间使用的公共表表达式之一获取数据。
例如:获取给定范围的整体销售百分比以及销售 ID
with saleDataRange as
(select * from saleTable where ...
)
with resultset1 as
(
...
)
select salePercent from resultset1 where ...
上述查询将仅返回 salePercent。但我也想要中间 resultset1 公用表。有什么提示吗?
【问题讨论】:
PostgreSQL 不支持多个结果集,所以我真的怀疑 Redshift(它基于经过大量修改的非常旧的 PostgreSQL 8.1 版本)是否支持。 PostgreSQL 中通常的解决方案是返回SETOF REFCURSOR
的函数,但在 Redshift 中不能这样做。
【参考方案1】:
我在 redshift amazon 中使用以下 2 种方法返回了多个不相关的结果集。
-
使用 CTE、完全外连接和 row_num
使用 CTE,合并所有列和空列
我还使用临时表分别获取多个结果。
【讨论】:
以上是关于Amazon Redshift:是不是可以返回多个结果集?的主要内容,如果未能解决你的问题,请参考以下文章
在 Amazon Redshift 中是不是可以在两列上设置条件?
分区依据的 Amazon Redshift Spectrum 不返回结果