在 Amazon Redshift 中按日期透视查询

Posted

技术标签:

【中文标题】在 Amazon Redshift 中按日期透视查询【英文标题】:Pivot query by date in Amazon Redshift 【发布时间】:2016-09-29 15:51:16 【问题描述】:

我在 Redshift 中有一个表格,例如:

category | date
----------------
   1     | 9/29/2016
   1     | 9/28/2016
   2     | 9/28/2016
   2     | 9/28/2016

我想变成:

category | 9/29/2016 | 2/28/2016
--------------------------------
   1     |    1      |   1 
   2     |    0      |   2

(每个日期每个类别的计数)

Pivot a table with Amazon RedShift / PostgreSQL 使用 CASE 语句似乎很有帮助,但这需要事先了解所有可能的情况 - 如果我想要的列每天都从给定日期开始,我该怎么做?

【问题讨论】:

【参考方案1】:

Amazon Redshift 没有提供没有功能可以自动旋转数据。

您引用的Pivot a table with Amazon RedShift / PostgreSQL 页面显示了如何生成输出,但它无法根据输入数据自动调整列数。

一种选择是编写一个程序来查询可用的日期范围,然后生成 SQL 查询。但是,这在 Amazon Redshift 中是不可能完全实现的。

【讨论】:

【参考方案2】:

您可以在约会时进行自我加入,我目前正在寻找如何去做。

【讨论】:

以上是关于在 Amazon Redshift 中按日期透视查询的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Amazon Redshift 中将时间戳转换为日期

检查 Amazon Redshift 中的无效日期

在 AWS Redshift 中透视非数字表

Amazon Redshift 返回日期名称

在 Redshift 中按总运行时间、执行时间、等待/排队时间列出排名靠前的查询?

如何在 Amazon Redshift 中将列从字符串更改为日期?