使用GROUPBY在MySQL中进行SQL查询

使用GROUPBY在MySQL中进行SQL查询,sql,mysql,Sql,Mysql,好的,这个问题应该很简单,但我有点困难。假设我有一个名为‘foo’的表,其中有‘a’、‘b’列 我试图在一个查询中找出以下问题: 选择“b”列类型的“a”列的可用方式,这是通过以下操作完成的: mysql>按b从foo组中选择计数(a),b 这是直截了当的。但是现在我想向该查询添加第三个输出,它显示count(a)除以count(*)的结果的百分比。因此,如果我总共有100行,其中一个GROUPBY结果返回20行,我可以得到第三列输出20%。这意味着a列占聚合池的20%。假设foo中有>0行 S

好的,这个问题应该很简单,但我有点困难。假设我有一个名为‘foo’的表,其中有‘a’、‘b’列

我试图在一个查询中找出以下问题:

选择“b”列类型的“a”列的可用方式,这是通过以下操作完成的:

mysql>按b从foo组中选择计数(a),b


这是直截了当的。但是现在我想向该查询添加第三个输出,它显示count(a)除以count(*)的结果的百分比。因此,如果我总共有100行,其中一个GROUPBY结果返回20行,我可以得到第三列输出20%。这意味着a列占聚合池的20%。

假设foo中有>0行

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

假设foo中有>0行

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

它有运行缓慢的风险,最好的办法是编写任何程序来执行两个单独的查询

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

它有运行缓慢的风险,最好的办法是编写任何程序来执行两个单独的查询

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