在一个选择中选择多个ID

时间:2015-08-04 15:54:21

标签: sql sqlite group-concat

我有一个数据库,其中的条目必须分组到

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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用group_concat()执行此操作:

select group_concat(id, ',') as ids, name, surname, sum(time) as time
from table t
group by name, surname;

只是不要将结果存储回数据库中。以逗号分隔的值对于返回结果很有用,但它是用于在数据库中存储数据的错误格式。