2013-10-21 46 views
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是什麼?

+0

的名單? –

+0

感謝您的快速回復..我正在使用MySQL。 –

回答

2

使用GROUP_CONCAT()得到一個逗號分隔的哪RDBMS的是你實際使用中,MySQL或Oracle IDS

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

是group_concat的mysql函數嗎? –

+0

是的。請參閱文檔的鏈接? –

+0

非常感謝..有可能獲得整個記錄不僅是ID? –