问题描述
我有一张桌子
fruit sold
----------------
apple 5
apple 10
apple 3
orange 2
orange 5
我想获得总数以及总数百分比。因此输出将是
fruit sold
----------------
All 25
apple 52%
orange 48%
截至所有已售苹果,苹果为13/25,橙色为12/25。
解决方法
我认为这是在生成总和的查询与计算每个水果的总和的查询之间的union all
:
select 'All' as fruit,sum(sold) sold from mytable
union all
select fruit,100.0 * sum(sold) / sum(sum(sold)) over()
from mytable
group by fruit
要注意的一件事是子查询的数据类型需要对齐。这会将所有内容都用数字表示(包括总销售额和每种水果的百分比)。