要将多行数据合并为一行,可以使用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子句可以按照成绩的顺序进行排序。