mysql - 对同一列进行 COUNT 两次

标签 mysql count logic percentage

我试图在不同的条件下对同一列进行两次计数,最后进行计算以了解一定的百分比。

该列填充了从 1 到 10 的多个数字,我想知道该数字大于 6 的行的百分比。

我有一个想法来检索数字:

SELECT number, Sum(number> 6) as number_sup_to_6 FROM table;

但我想在检索这些数据后计算大于 6 的数字占总数的百分比:((n>6)/n)*100

然后我从之前的帖子中获得灵感来进行计算:

concat(round(( number_sup_to_6 /number* 100 ),2),'%') AS percentage

问题是,我不知道如何将这 2 条 sql 放在一起,有人可以帮助我如何理解如何将它们组合在一起吗?

感谢您的帮助。

最佳答案

使用CASE语句

SELECT number, (number_sup_to_6/total_count)*100 AS percentage
FROM
(SELECT number, 
COUNT(CASE WHEN number > 6 THEN number ELSE NULL END) AS number_sup_to_6, 
COUNT(number) AS total_count FROM table_name 
GROUP BY number) AS a

关于mysql - 对同一列进行 COUNT 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43597000/

相关文章:

mysql - 从两个不同的表中选择记录

python - 使用计数器从 csv 读取和绘图

.net - 如何正确记录应用程序的逻辑流程?

mysql - 需要在mysql中按数据分组

C# MySQL SQL 更新/插入

mysql - 如何同步2个数据库中的产品库存。 Mysql和MSSQL实时

mysql - 在MySQL中,如何在连接公共(public)列时查询多个表对列的计数

sql - 为什么没有FROM子句的COUNT(*)等于1?

xslt - 计算 <call-template> 返回的元素数量

arrays - 用不同维度的项目填充包的算法逻辑