繁体   English   中英

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

[英]Get percentage of each unique value in column (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')

现在这给我的是column1的第一个唯一值, Percentage为 100%。

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

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

select columnA, count(*), (COUNT(*) / (SELECT COUNT(*) FROM myTable)) * 100 FROM myTable group by columnA;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM