我有一张这样的table
我有一个查询,显示在每个地区制造的车辆数量和在该地区制造的车辆百分比
select
COALESCE(Region, 'Total') AS Region,
count(veh_vin) as "Total Vehicles Manufactured",
round(ratio_to_report(count(veh_vin)) over(),2) as rr
from(
select
case
when substr(veh_vin,1,1) between 'A' and 'C' then 'Africa'
when substr(veh_vin,1,1) between 'J' and 'R' then 'Asia'
when substr(veh_vin,1,1) between 'S' and 'Z' then 'Europe'
when substr(veh_vin,1,1) between '1' and '5' then 'North America'
when substr(veh_vin,1,1) between '6' and '7' then 'Oceania'
when substr(veh_vin,1,1) between '8' and '9' then 'South America'
else 'Unknown'
end as Region,
veh_vin
from vehicle
)
group by ROLLUP(Region)
order by count(veh_vin), Region;
结果如下
但我想要这样的东西,在计算百分比时不包括总数。
有没有可能实现这一点的比率报告?如果没有,我如何修改查询?
1条答案
按热度按时间66bbxpm51#
我喜欢显式计算。您可以调整聚合行的计算(任意一种方式):
同样的想法对我不太适用
ratio_to_report()
--因为它回来了NULL
而不是1。但你可以用:这是一把小小提琴。