2010-04-13 103 views
7

讓我們說MySQL的是這樣的MySQL的GROUP BY和計算行問題

select x,y 
from xx 
group by y 

我想知道有多少行是選擇會得到,我試圖用計數,但它不會返回所有結果因爲我正在使用group。

該怎麼辦?

感謝

+0

你想知道有多少行是每個組中?或所有組中有多少行?或者有多少組? – keithjgrant 2010-04-13 16:05:23

+0

此選擇返回的所有行 – trrrrrrm 2010-04-13 16:06:35

回答

14

你可以用你的查詢,像這樣:

SELECT COUNT(*) FROM 
    (select x,y 
    from xx 
    group by y) sub; 
+3

任何想法如果有問題的MySQL服務器不允許子查詢,可以這樣做? – 2013-01-11 22:20:18

0

假設你有一個表與下面的內容:

------------------- 
| ID | NAME | GROUP | 
+-------------------+ 
| 1 | A | 1 | 
+-------------------+ 
| 2 | B | 2 | 
+-------------------+ 
| 3 | C | 2 | 
+-------------------+ 
| 4 | D | 3 | 
+-------------------+ 
| 5 | E | 1 | 
+-------------------+ 
| 6 | F | 3 | 
+-------------------+ 

以下自LEFT JOIN計數的數量GROUP中不同的值。

SELECT COUNT(*) 
FROM table AS t1 
LEFT JOIN table AS t2 ON t2.GROUP = t1.GROUP AND t2.ID > t1.ID 
WHERE t2.id IS NULL; 

此查詢所做的是找出每個組中具有最高ID的元素。