要將多行數據合并為一行,可以使用GROUP BY子句和聚合函數來實現。
假設有以下數據:
表名:students
id | name | score |
---|---|---|
1 | Alice | 85 |
1 | Alice | 90 |
2 | Bob | 80 |
2 | Bob | 75 |
3 | Charlie | 95 |
3 | Charlie | 85 |
要將每個學生的成績合并為一行,可以使用以下查詢:
SELECT
id,
name,
GROUP_CONCAT(score ORDER BY score SEPARATOR ', ') AS scores
FROM
students
GROUP BY
id, name;
結果:
id | name | scores |
---|---|---|
1 | Alice | 85, 90 |
2 | Bob | 75, 80 |
3 | Charlie | 85, 95 |
在上面的查詢中,使用GROUP_CONCAT函數將每個學生的成績連接為一個字符串,并使用逗號分隔。使用ORDER BY子句可以按照成績的順序進行排序。