好的,所以这个查询应该很容易,但我有点困难。假设我有一个名为'foo'的表,其中列'a','b'。
我试图在一个查询中找出以下内容:
选择列'a'的列'a'的可用方式,这可以通过以下方式完成:
的MySQL>从foo GROUP BY b中选择count(a),b;
直截了当。但现在我想向该查询添加第三个输出,它显示计数(a)除以计数(*)的结果百分比。因此,如果我总共有100行,并且其中一个GROUP BY结果返回20,我可以得到第三列输出20%。这意味着列a占总聚合池的20%。
答案 0 :(得分:4)
假设你有> foo中的0行
SELECT count(a), b, (count(a) / (SELECT count(*) FROM foo)) * 100
FROM foo
GROUP BY b
答案 1 :(得分:0)
存在运行缓慢的风险,最好的办法就是编写任何可以执行两个单独查询的内容。
SELECT count(*) INTO @c FROM foo;
SELECT count(a), b, (count(a)/@c)*100 FROM foo GROUP by b;