2009-12-17 127 views
0

好吧,這個查詢應該很容易,但我有點困難。假設我有一個名爲'foo'的表,其中列'a','b'。MySQL中使用GROUP BY的SQL查詢

我想弄清楚下面在一個查詢:

選擇列如何「一」是可用類型列「B」,這與以下完成:

的mysql>從foo GROUP BY b中選擇count(a),b;

這是直截了當的。但現在我想向該查詢添加第三個輸出,並顯示count(a)除以count(*)的結果百分比。所以如果我總共有100行,並且其中一個GROUP BY結果返回20,我可以得到第三列輸出20%。這意味着列a爲總池的20%。

回答

4

假設你有富

SELECT count(a), b, (count(a)/(SELECT count(*) FROM foo)) * 100 
FROM foo 
GROUP BY b 
0

> 0行有它運行緩慢的風險,最好的辦法是什麼程序是瓶坯兩個單獨的查詢。

SELECT count(*) INTO @c FROM foo; 
SELECT count(a), b, (count(a)/@c)*100 FROM foo GROUP by b;