我试图在不同的条件下对同一列进行两次计数,最后进行计算以了解一定的百分比。
该列填充了从 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/