【发布时间】:2018-09-21 22:14:50
【问题描述】:
我有一个包含不同案例、公司和日期(时间戳)的 Redshift 表
我使用以下查询按月汇总每个公司的案例数:
SELECT
DATE_TRUNC('MONTH', case_date) AS month,
company_id,
COUNT(DISTINCT case_number) AS case_count
FROM case
WHERE case_date >= '2017-01-01'
AND case_date < DATE_TRUNC('MONTH', CURRENT_DATE)
GROUP BY 1, 2
ORDER BY 1
得到:
month company_id case_count
2017-01-01 00:00:00 5786 4
2017-01-01 00:00:00 8681 1
......... .... .....
2018-08-01 .... .....
我想按公司对表格进行透视。期望的输出是让每家公司在一行中,列是从 2017-01-01 到当前日期的上一个月的每个月。所以它看起来像:
company_id 2017-01-01_case_count 2017-02-01_case_count .. 2018-08-01..
5786 4 7
我检查了许多使用 CASE 的解决方案,但我认为这不是我的解决方案,因为我有很多不同的月份。我还希望解决方案是动态的,这样以后我就不必随着时间的推移返回并更改我的查询。
我当然可以将所有数据转储到 Python 中并执行此操作,但我想在 Redshift 中解决问题。
【问题讨论】:
标签: sql amazon-redshift