我有以下查询结果
+-----------+-------------+----------+----------+----------+
| person_id | question_id | answer_1 | answer_2 | answer_3 |
+-----------+-------------+----------+----------+----------+
| 1 | 1 | a1 | | |
| 1 | 2 | | a2 | |
| 1 | 3 | | | a3 |
| 2 | 1 | a4 | | |
| 2 | 2 | | a5 | |
| 2 | 3 | | | a6 |
+-----------+-------------+----------+----------+----------+这是使用左联接实现的。
如何将其格式化以导致以下结果
+-----------+----------+----------+----------+
| person_id | answer_1 | answer_2 | answer_3 |
+-----------+----------+----------+----------+
| 1 | a1 | a2 | a3 |
| 2 | a4 | a5 | a6 |
+-----------+----------+----------+----------+第一个查询非常大,它使用生成的列名,因此答案从不同的表中连接。理想情况下,从第一个表中获取结果并将其转换为第二个表。
发布于 2019-05-10 10:06:34
SELECT person_id, MAX(answer_1), MAX(answer_2), MAX(answer_3)
FROM (<your_sub_query>) subquery_alias
GROUP BY person_id会做好这份工作。
https://dba.stackexchange.com/questions/237798
复制相似问题