Ver Mensaje Individual
  #12  
Antiguo 24-09-2015
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Reputación: 21
RONPABLO Va por buen camino
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
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita