【发布时间】:2018-07-27 11:39:04
【问题描述】:
我有一张这样的桌子:
| id | name | segment | date_created | question | answer |
|----|------|---------|--------------|----------|--------|
| 1 | John | 1 | 2018-01-01 | 10 | 28 |
| 1 | John | 1 | 2018-01-01 | 14 | 37 |
| 1 | John | 1 | 2018-01-01 | 9 | 83 |
| 2 | Jack | 3 | 2018-03-11 | 22 | 13 |
| 2 | Jack | 3 | 2018-03-11 | 23 | 16 |
我想在一行中显示这些信息,将所有问题和答案转换为列:
| id | name | segment | date_created | question_01 | answer_01 | question_02 | answer_02 | question_03 | answer_03 |
|----|------|---------|--------------|-------------|-----------|-------------|-----------|-------------|-----------|
| 1 | John | 1 | 2018-01-01 | 10 | 28 | 14 | 37 | 9 | 83 |
| 2 | Jack | 3 | 2018-03-11 | 22 | 13 | 23 | 16 | | |
同一 ID 的问题/答案数量是已知的。最多 15 个。
我已经尝试过使用交叉表,但它只接受一个值作为类别,我可以有 2 个(问题/答案)。任何帮助如何解决这个问题?
【问题讨论】:
-
一个选项是常规数据透视查询。谷歌“SQL 数据透视查询”寻求帮助。我也认为交叉表可以在这里工作。
标签: sql postgresql pivot pivot-table crosstab