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

获取列中每个唯一值的百分比(mySQL),mysql,Mysql,我试图提出一个查询,该查询将查找特定列中的所有唯一值,然后计算每个唯一值的实例数,并返回该计数以及每个唯一值相对于值总数的百分比 这是我所拥有的,但它不起作用,因为它只给了我第一个独特的项目,而不是所有可能的选项 select `column1` , ROUND( (count(`column1`)* 100 / (select count(*) from full_db3 where `exuid` in ('e7dfb4dd-0cd2-44df-bd35-6ecc9a0

我试图提出一个查询,该查询将查找特定列中的所有唯一值,然后计算每个唯一值的实例数,并返回该计数以及每个唯一值相对于值总数的百分比

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

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')
现在我看到的是第1列中的第一个唯一值,百分比为100%


我将动态地传递exuid值,所以它总是一个不同的数字,所以在传递它之前,我必须计算传递给它的值的数量,或者查询必须在某个地方计算它们。也不太清楚该怎么做。

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

按列从myTable中选择columnA、count*、count*/按列从myTable group中选择count*100


如果您按唯一字段分组并使用count,它将为您提供所有唯一值及其计数group by用于获取唯一值和百分比,但不确定如何使用您描述的count。当与group Bys一起使用时,select countcolumn1将为您提供该唯一值的出现次数。因此基本上,您只需在select中添加countcolumn1,然后在查询结束时添加group by column1,您应该很好地了解它……它工作正常。这与我的原始设置相符吗查询?这是您需要如何修改查询的示例。将GROUPBY column1添加到查询的末尾,然后在select语句中添加select count*作为第三列。