获取参与group by子句的所有记录

时间:2013-10-21 07:03:49

标签: mysql sql

我需要一个查询,它使用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是什么?

1 个答案:

答案 0 :(得分:2)

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

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