我有一个名称表,其中每一行都有列name
和occurrences
。
我想从表格中计算某个名称的百分比。
如何在一个查询中做到这一点?
答案 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%'
答案 2 :(得分:1)
由于字段列表中的子查询,它不是很优雅,但是如果您希望在一个查询中使用它,它将完成此工作:
SELECT
`name`,
(CAST(SUM(`occurance`) AS DOUBLE)/CAST((SELECT SUM(`occurance`) FROM `user`) AS DOUBLE)) as `percent`
FROM
`user`
WHERE
`name`='miroslav';
希望这会有所帮助,
答案 3 :(得分:1)
我认为条件聚合是最好的方法:
select sum(case when name = @name then occurrences else 0 end) / sum(occurrences) as ratio
from t;
如果您希望将0到100之间的实际百分比乘以100。