如何解决Redshift 动态案例
我有一个表格,我想在 Redshift 中使用 cases
进行透视。
CREATE TABLE SurveyResponses (
id int,question varchar(255),answer varchar(255)
);
INSERT INTO SurveyResponses (id,question,answer) values (1,'Dummy question 1','responseX');
INSERT INTO SurveyResponses (id,answer) values (2,'responseY');
INSERT INTO SurveyResponses (id,answer) values (3,'responseZ');
INSERT INTO SurveyResponses (id,answer) values (4,'Dummy question 2','responseA');
INSERT INTO SurveyResponses (id,answer) values (5,'responseB');
INSERT INTO SurveyResponses (id,answer) values (6,'Dummy question 3','responseC');
我尝试了以下不起作用的案例方法。我得到重复的行。
Select id,Case
When question = 'Dummy question 1' then answer Else '' End as question_1,Case
When question = 'Dummy question 2' then answer Else '' End as question_2,Case
When question = 'Dummy question 3' then answer Else '' End as question_3
FROM SurveyResponses;
ID | QUESTION_1 | QUESTION_2 | QUESTION_3 |
---|---|---|---|
1 | 响应X | - | - |
2 | 响应Y | - | - |
3 | responseZ | - | - |
4 | - | 响应A | - |
5 | - | 响应B | - |
6 | - | - | 响应C |
1 | 响应X | - | - |
2 | 响应Y | - | - |
3 | responseZ | - | - |
4 | - | 响应A | - |
5 | - | 响应B | - |
6 | - | - | 响应C |
1 | 响应X | - | - |
2 | 响应Y | - | - |
3 | responseZ | - | - |
4 | - | 响应A | - |
5 | - | 响应B | - |
6 | - | - | 响应C |
此外,在我的真实表中,我将有 5000 多个问题。我不想为每个问题都写 case
语句。另外,我希望我的列名是问题文本。
有人能帮我让它变得动态吗?
解决方法
此外,在我的真实表中,我将有 5000 多个问题。
每个表有 1600 列的硬限制。此外,对于某些类型的查询,此限制很早就达到了 - 我没有详细研究过这一点,但其他功能(类似于窗口函数)似乎会占用最大列数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。