获取列中每个唯一值的百分比(mySQL)

时间:2015-07-31 18:54:26

标签: mysql

我正在尝试提出一个查询,该查询将查找特定列中的所有唯一值,然后计算每个唯一值的实例数,并返回该计数以及每个唯一值与总数的百分比价值数量。

这就是我所拥有的,但它不起作用,因为它只给我第一个独特的项目,而不是所有可能的选项。

select 
`column1`
, ROUND( 
        (count(`column1`)* 100 / (select count(*) from full_db3 
where `exuid` in ('e7dfb4dd-0cd2-44df-bd35-6ecc9a061756','56baea00-253b-428e-88fc-9969688ea9c8'))
      ), 2)
  as Percentage
from full_db3 where `exuid` in ('e7dfb4dd-0cd2-44df-bd35-6ecc9a061756','56baea00-253b-428e-88fc-9969688ea9c8')

现在给我的是column1Percentage中的第一个唯一值为100%。

我将动态传递exuid值,因此它总是一个不同的数字,所以要么我必须计算我传递给它之前传入的值的数量,或者查询必须在某处计算它们。不太确定怎么做。

1 个答案:

答案 0 :(得分:1)

您需要按要计算的列进行分组。然后使用子查询将该数字除以表中的总行数:

  

选择columnA,count(*),(COUNT(*)/(SELECT COUNT(*)FROM myTable))* 100 from myTable group by columnA;