Хммм. , , Это выглядит как условная логика c, а не агрегация:
select vehicle_id,
(case when region = 'Southwest' then revenue else 0 end) as southwest_r,
(case when region = 'Northeast' then revenue else 0 end) as northeast_r,
(case when district = 'District' then revenue else 0 end) as fld_r,
(case when district = 'NYC' then revenue else 0 end) as nyc_r,
. . .
from t;
Если вы можете иметь несколько строк на транспортное средство, то вы можете использовать агрегацию:
select vehicle_id,
sum(case when region = 'Southwest' then revenue else 0 end) as southwest_r,
sum(case when region = 'Northeast' then revenue else 0 end) as northeast_r,
sum(case when district = 'District' then revenue else 0 end) as fld_r,
sum(case when district = 'NYC' then revenue else 0 end) as nyc_r,
. . .
from t
group by vehicle_id;