2011-09-29 37 views
1

我正在嘗試爲mysql查詢獲取COUNT。它很簡單:如何在sql中進行分組時得到總數?

SELECT COUNT(id) FROM table WHERE [insert rule here] GROUP BY grouper 

的問題是,因爲該集團在其結尾,我最終得到行每個組,計數時,我只是想總的。

目前做到這一點,我就把這導致一個陣列從一個查詢,看起來更像是這樣的:

$res = mysql_query(SELECT * FROM table WHERE [insert rule here] GROUP BY grouper) 
$count = mysql_num_rows($res); 

這工作不錯,但我只是想利用計。

這是如何完成的?

+0

如果沒有架空或戲劇性的查詢變得太,我會說你是在正確的軌道計算返回行上。 –

回答

3

您的組後添加WITH ROLLUP通過聲明:SELECT COUNT(id) FROM table WHERE [insert rule here] GROUP BY id WITH ROLLUP

+0

多數民衆贊成酷。然後它將所有數字相加,最後一個是總數。但如何訪問該號碼? – willdanceforfun

+1

彙總行將由分組列中的NULL值指示。您只需查看結果集,然後查找分組列爲空的行,然後從該行讀取計數列的值。在單個分組列的情況下,彙總行也將始終是返回的最後一行 - 所以可以這樣交替查找。 – Lee

1

在冠冕堂皇愚蠢的(或誤解你的問題)風險:

刪除group by條款?

+0

在這種情況下,我正在計算按session_id分組的訪問總數。即準確的結果是類似於50,在這種情況下...沒有它的團體變得更像500. – willdanceforfun

相關問題