2009-12-17 134 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;