; with
t as
(
select m.autonomia, m.provincia, m.municipio, m.poblacion,
m.idmunicipio, m.idProvincia, m.CodAutonomia,
rank() over(order by poblacion) rango,
dense_rank() over(order by poblacion) rango_denso,
row_number() over(order by poblacion, municipio) num_fila
from vmunicipios m
left join retribuciones r on (r.idmunicipio = m.idmunicipio)
),
a as
(
select sum(poblacion) as total from vmunicipios
)
select t.num_fila, t.rango, t.rango_denso,t.municipio, t.provincia, t.poblacion,
sum(t.poblacion) over(order by t.num_fila) acumulado_poblacion,
((t.poblacion 100.00) / a.total) porcentaje_poblacion,
(((sum(t.poblacion) over(order by t.num_fila)) 100.00) / a.total) porcentaje_acumulado
from t, a
order by rango_denso
; with t as ( select m.autonomia, m.provincia, m.municipio, m.poblacion, m.idmunicipio, m.idProvincia, m.CodAutonomia, rank() over(order by poblacion) rango, dense_rank() over(order by poblacion) rango_denso, row_number() over(order by poblacion, municipio) num_fila from vmunicipios m left join retribuciones r on (r.idmunicipio = m.idmunicipio) ), a as ( select sum(poblacion) as total from vmunicipios ) select t.num_fila, t.rango, t.rango_denso,t.municipio, t.provincia, t.poblacion, sum(t.poblacion) over(order by t.num_fila) acumulado_poblacion, ((t.poblacion 100.00) / a.total) porcentaje_poblacion, (((sum(t.poblacion) over(order by t.num_fila)) 100.00) / a.total) porcentaje_acumulado from t, a order by rango_denso