sql >> Base de Datos >  >> RDS >> Oracle

¿Qué significa anterior en Oracle?

Obviamente estás consultando una tabla T con columnas WIN_30_DUR , AGENT_MASTER_ID y ROW_DT (entre otros). Tenga en cuenta que las palabras clave como OVER , PARTITION muestre que está utilizando una solicitud analítica:tales solicitudes le permiten obtener información sobre la fila actual de las otras, eso sería complejo y largo de escribir con GROUP BY u otras cláusulas "estándar".

Aquí, en una fila determinada, usted:

  • grupo (PARTITION ) por AGENT_MASTER_ID :esto obtiene todas las filas de T con AGENT_MASTER_ID actual
  • en la partición que formó ORDER filas por ROW_DT
  • este orden le permite seleccionar las 30 filas antes del ROW_DT actual :este es el significado del PRECEDING palabra clave (0 seleccionaría la fila actual, lo contrario es el FOLLOWING cláusula)
  • luego haces una suma en el WIN_30_DUR campo

En el lenguaje habitual, esto significaría algo como:para cada agente, tome la suma de las duraciones de los 30 días anteriores.