我有一个大约有 40k 行和 240 列的大表。有些列是 true/false 作为唯一可能的值。其他有多个可能的字符串。我需要生成的基本上是一个汇总报告,该报告将显示每列的所有可能值以及具有该值的总行的百分比(例如,第 5 列中所有行的百分比是“向上”的,百分比是“向上”的) “向下”,“向左”的百分比是多少,等等)
我能找到的就是在一列中查找不同值的计数:
选择方向,COUNT(*) 作为来自 full_db3 的计数 group by 方向 order by count desc
这给了我总行数:
选择 COUNT(*) 作为 full_db3 的计数
我不知道如何将这些组合起来给出百分比而不是计数。这也只提供了单列的结果,我正在寻找一种循环遍历每一列并获取结果的方法。
最佳答案
您的问题令人畏惧的原因是您有 240 列。如果这是一次性报告,Excel 或 Tablaeu 可能是创建具有基本统计数据的快速数据透视表的不错选择。
如果您需要在 MySQL 中执行此操作,您将需要返回您关心的每列中每个不同值的计数。取名为“COLUMN1”的列,其可能值为 0,1 和 2。
select
COLUMN1
, ROUND( //Round to help control the output
(count(COLUMN1)* 100 / (select count(*) from TABLE)
), 2)
as Percentage
from TABLE;
这将为您提供列中每个值的百分比。由于 240 列中的每一列都有不同值的计数,因此请勿尝试将所有不同的百分比图表合并在一起。希望这可以帮助您朝着正确的方向开始。
关于mysql - 获取所有列的所有唯一值的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614601/