查询SQL表中的出现百分比

时间:2019-03-16 20:16:33

标签: sql sqlite

我有一个名称表,其中每一行都有列nameoccurrences

我想从表格中计算某个名称的百分比。

如何在一个查询中做到这一点?

4 个答案:

答案 0 :(得分:2)

您可以使用SUM(occurrences)来获取它:

select 
  name,
  100.0 * sum(occurrences) / (select sum(occurrences) from users) as percentage
from 
  users
where name = 'Bob' 

答案 1 :(得分:2)

尝试一下:

SELECT name, cast(sum(occurance) as float) /
(select sum(occurance) from test) * 100 percentage FROM test
where name like '%dog%'

Demo here

答案 2 :(得分:1)

由于字段列表中的子查询,它不是很优雅,但是如果您希望在一个查询中使用它,它将完成此工作:

SELECT 
  `name`,
  (CAST(SUM(`occurance`) AS DOUBLE)/CAST((SELECT SUM(`occurance`) FROM `user`) AS DOUBLE)) as `percent`
FROM 
  `user`
WHERE
   `name`='miroslav';

Example Fiddle

希望这会有所帮助,

答案 3 :(得分:1)

我认为条件聚合是最好的方法:

select sum(case when name = @name then occurrences else 0 end) / sum(occurrences) as ratio
from t;

如果您希望将0到100之间的实际百分比乘以100。