0

我需要一个查询,它使用 count(*) 函数返回参与 group by 子句的记录。例如我有一张叫做书的桌子

======================
 ID | NAME |  AUTHER
======================
 2  | Abc  | John 
 6  | Abc  | John 
 3  | Xyz  | Mike 
 4  | Abc  | Mike 
 5  | Xyz  | John 
 1  | Abc  | Mike 
 7  | PQR  | Raj 

为此,如果我写一个查询

select count(*),name,auther from books group by(name,auther);

然后它返回类似的记录

========================
COUNT(*)| NAME |AUTHER
========================
1       | Xyz  | Mike 
1       | PQR  | Raj 
2       | Abc  | John 
1       | Xyz  | John 
2       | Abc  | Mike 

现在我想知道同一组中书籍的ID。例如,在最后的结果记录中有两本书,那么它们的 ID 是什么?

4

1 回答 1

3

使用GROUP_CONCAT()获取逗号分隔的 id 列表

select count(*),name, auther, group_concat(id) ids
from books 
group by name, auther;
于 2013-10-21T07:07:42.283 回答