我有一个数据库,其中的条目必须分组到
id | Name | Surname | Time
1 | Michael | Kane | 3
2 | Torben | Dane | 4
3 | Dinge | Chain | 5
4 | Django | Fain | 5
5 | Juliett | Bravo | 6
6 | Django | Fain | 7
7 | Django | Fain | 3
8 | Django | Fain | 4
9 | Dinge | Chain | 4
10 | Torben | Dane | 4
现在我想在维护所有ID的同时对项目进行分组。我正在接近以下查询,但我正在丢失我的ID
SELECT id, Name, Surname, sum(Time) from Names group by(Name)
查询结果为
id | Name | Surname | Time
9 | Dinge | Chain | 9
8 | Django | Fain | 19
5 | Juliett | Bravo | 6
1 | Michael | Kane | 3
10 | Torben | Dane | 8
虽然我需要像这样的所有ID
ids | Name | Surname | Time
3,9 | Dinge | Chain | 9
4,6,78 | Django | Fain | 19
5 | Juliett | Bravo | 6
1 | Michael | Kane | 3
2,10 | Torben | Dane | 8
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用group_concat()
执行此操作:
select group_concat(id, ',') as ids, name, surname, sum(time) as time
from table t
group by name, surname;
只是不要将结果存储回数据库中。以逗号分隔的值对于返回结果很有用,但它是用于在数据库中存储数据的错误格式。