¿Cuál es el significado de la cláusula OVER en Oracle?OVER cláusula en Oracle
Respuesta
La cláusula OVER especifica la partición, ordenando & ventana "sobre la cual" opera la función analítica.
Por ejemplo, este calcula un promedio móvil:
AVG(amt) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
date amt avg_amt
===== ==== =======
1-Jan 10.0 10.5
2-Jan 11.0 17.0
3-Jan 30.0 17.0
4-Jan 10.0 18.0
5-Jan 14.0 12.0
Se opera sobre una ventana en movimiento (3 filas de ancho) sobre las filas, por fecha.
Este calcula un saldo corriente:
SUM(amt) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
date amt sum_amt
===== ==== =======
1-Jan 10.0 10.0
2-Jan 11.0 21.0
3-Jan 30.0 51.0
4-Jan 10.0 61.0
5-Jan 14.0 75.0
Opera a través de una ventana que incluye la fila actual y todas las anteriores.
Esto calcula el máximo, por separado para cada "dept":
MAX(amt) OVER (PARTITION BY dept)
dept amt max_amt
==== ==== =======
ACCT 5.0 7.0
ACCT 7.0 7.0
ACCT 6.0 7.0
MRKT 10.0 11.0
MRKT 11.0 11.0
SLES 2.0 2.0
que opera sobre una ventana que incluye todas las filas de un departamento particular.
SQL violín: http://sqlfiddle.com/#!4/9eecb7d/122
Es parte de Oracle analytic functions.
Se puede utilizar para transformar algunas funciones agregadas en analítica:
SELECT MAX(date)
FROM mytable
regresará 1
fila con un único máximo,
SELECT MAX(date) OVER (ORDER BY id)
FROM mytable
devolverá todas las filas con un máximo de funcionamiento.
Haces una muy buena punto sobre la transformación de funciones agregadas en analíticas. Esa es una forma en que nunca pensé en eso. – user128216
- 1. SQL: use la cláusula WHERE en OVER()?
- 2. Cláusula modelo en Oracle
- 3. Caso en Oracle cláusula WHERE
- 4. Oracle SQL - Funciones analíticas OVER a group?
- 5. cláusula de Oracle CONNECT BY después de la cláusula GROUP BY
- 6. oracle raw datatype in where cláusula
- 7. Oracle SQL: timestamps in where cláusula
- 8. Cómo usar variables en Oracle PL/SQL donde la cláusula
- 9. ORACLE Connect by cláusula equivalente en SQL Server
- 10. Funciones agregadas definidas por el usuario en Oracle PIVOT cláusula
- 11. ¿Cómo afecta la cláusula IN el rendimiento en Oracle?
- 12. Funciones de Oracle Analytic: cómo volver a utilizar una cláusula PARTITION BY?
- 13. Ejemplo de una cláusula Oracle PIVOT con subconsulta
- 14. Procedimiento almacenado de Oracle con parámetros para la cláusula IN
- 15. PLSQL Insert into con subconsulta y cláusula de regresar (Oracle)
- 16. Sum over Haskell Map
- 17. UILabel Over UISlider Thumb
- 18. boost :: asio over SocketCAN
- 19. ¿Es posible over OO?
- 20. Git over Email
- 21. NÚMERO DE FILA() OVER
- 22. overlay html over flash?
- 23. Tooltip over cell. GWT
- 24. Redis Fail Over
- 25. partición función count() OVER posible usando DISTINCT
- 26. Grupo por vs Partición por en Oracle
- 27. ¿Cómo desencadenar Mouse-Over en iPhone?
- 28. Protocolo Buffer over socket en C++
- 29. Exponer IQueryable Over WCF Service
- 30. Para Colección Loop over Backbone
En caso de duda, consulte el manual: http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions004.htm#SQLRF06174 –