获取所有列的所有唯一值的百分比

时间:2015-07-24 15:39:23

标签: mysql

我有一个大约有4万行和240列的大表。有些列是true / false作为唯一可能的值。其他人有多种可能的字符串我需要生成的基本上是一个聚合报告,它将显示每列的所有可能值以及具有该值的总行的百分比(例如,第5列中所有行的百分比是“向上”,百分比是多少“向下”,“剩下”的百分比等等。)

我所能得到的只是在一列中找到不同值的计数:

SELECT direction, COUNT(*) as count from full_db3 group by direction order by count desc

这给了我总行数:

Select COUNT(*) as count from full_db3

我不知道如何将这些结合起来给我百分之而不是计数。这也只给我一个列的结果,我正在寻找一种循环遍历每一列并获得结果的方法。

1 个答案:

答案 0 :(得分:0)

你的问题令人生畏的原因是你有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列中的每一列都有不同的不同值,因此不要尝试将所有不同的百分比图表合并在一起。希望这有助于您开始朝着正确的方向前进。