首页 > 解决方案 > Redshift SQL:如何纯粹在 SQL 中创建队列三角形(对角线形式)

问题描述

我有一张包含每月队列数量的表格。它有 3 个字段,分别是群组、月份和 user_count。有了这个表,如果可能的话,我想在 SQL 中创建另一个看起来像这样的表(“队列三角形”):

month   2019-07 2019-08 2019-09 2019-10 2019-11
2019-07   200     186     171     160     151
2019-08            81      73      71      69   
2019-09                    46      34      23
2019-10                           100      90 
2019-11                                    80

在此架构中,字段为“月”、“2019-07”、“2019-08”、“2019-09”、“2019-10”和“2019-11”(标题行)。

这是用于填充测试队列表的 SQL:

create table test (
  cohort varchar(7),
  "month" varchar(7),
  user_count int
);
insert into test values
('2019-07', '2019-07', 200),
('2019-07', '2019-08', 186),
('2019-07', '2019-09', 171),
('2019-07', '2019-10', 160),
('2019-07', '2019-11', 151),
('2019-08', '2019-08', 81),
('2019-08', '2019-09', 73),
('2019-08', '2019-10', 71),
('2019-08', '2019-11', 69),
('2019-09', '2019-09', 46),
('2019-09', '2019-10', 34),
('2019-09', '2019-11', 23),
('2019-10', '2019-10', 100),
('2019-10', '2019-11', 90),
('2019-11', '2019-11', 80);

Redshift 不支持 CROSSTAB(我在 SQL 中检查了 Cohort-style Table (Diagonal Grid)),所以我很难转换为对角线形式。

标签: amazon-redshift

解决方案


推荐阅读