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 字符串列出删除多个单引号

分区依据的 Amazon Redshift Spectrum 不返回结果

Amazon Redshift 是不是有自己的存储后端

Amazon Redshift 是不是支持扩展 dblink?

使用 Amazon Redshift 进行维度建模是不是可行