Otro ejemplo ya usando información al interior del over:
Código SQL
[-]
Select
Id,
Nombre,
centroDeCostos,
Sueldo,
sueldo / sum(sueldo) over (partition by centroDeCostos) porcentaje
from tabla where fecha between :f1 and :f2
En el query anterior estamos particionando por centro de costos y con esto ahora obtenemos el promedio ya no por el resultado del sum de toda la ventana, si no por la agrupación que diera el centro de costos.
O podemos obtener el valor acumulado del sueldo:
Código SQL
[-]
Select
Id,
Nombre,
Sueldo,
sueldo / sum(sueldo) over () porcentaje,
sueldo / sum(sueldo) over (order by sueldo) acumulado,
sueldo / sum(sueldo) over (order by sueldo desc) acumlado_des,
from tabla where fecha between :f1 and :f2
y obtendríamos algo como:
Cita:
ID / Nomre / Sueldo / Porcentaje / Acumulado / acumulado_desc
1 / Andres / 200 / 21 / 200 / 950
4 / Carlos / 300 / 31 / 500 / 750
9 / Clara / 450 / 48 / 950 / 450
|