В чем смысл предложения OVER в Oracle?Предложение OVER в Oracle
ответ
Предложение OVER указывает на разбиение на разделы, заказывая & окно «над которым» работает аналитическая функция.
Например, это вычисляет скользящее среднее:
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
Он работает над скользящим окном (3 строки широкого) по строкам, упорядоченное по дате.
Это вычисляет бегущую баланс:
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
Он работает по окну, которое включает в себя текущую строку и все предыдущие строки.
Это вычисляет максимум, отдельно для каждого «отдела»:
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
Он работает по окну, которое включает в себя все строки для конкретного отдела.
SQL Скрипки: http://sqlfiddle.com/#!4/9eecb7d/122
Это часть Oracle analytic functions.
Вы можете использовать его, чтобы преобразовать некоторые агрегатные функции в аналитическом:
SELECT MAX(date)
FROM mytable
возвратит 1
строку с одним максимумом,
SELECT MAX(date) OVER (ORDER BY id)
FROM mytable
возвращает все строки с запущенной максимум.
Вы делаете очень хорошее о преобразовании агрегатных функций в аналитические. Так я и не думал об этом. – user128216
- 1. Предложение Qualify в Oracle
- 2. В каких версиях OracleSQL существует предложение OVER?
- 3. WHERE Предложение в ORACLE
- 4. Предложение модели в Oracle
- 5. SQL: использовать предложение WHERE в OVER()?
- 6. SELECT *, ROW_NUMBER() OVER в Oracle
- 7. Неверный идентификатор в OVER Oracle
- 8. Предложение подзапроса Oracle
- 9. Предложение SQL Where в ORACLE
- 10. if предложение в Oracle SQL
- 11. Динамическое предложение where в ORACLE
- 12. Oracle SQL Выберите предложение
- 13. SQL - Когда будет использоваться пустое предложение OVER?
- 14. SQL-сервер, что это за предложение over
- 15. SQL: Oracle avg over group
- 16. Oracle WebLogic Server over Azure
- 17. Oracle sql types over dblink
- 18. Oracle Collect Over Analytical Function
- 19. Предложение Oracle collate не работает
- 20. Предложение Dynamic FROM в Oracle SQL
- 21. Предложение If-else в базе данных Oracle
- 22. Как создать динамическое предложение where в oracle
- 23. заменить предложение WITH VIEW в Oracle
- 24. LINQ (to Oracle) - Row_Number() Over Partition By
- 25. Oracle Text Query over Сотни ключевых слов
- 26. gvnix over Jboss 6 и Oracle
- 27. Oracle SQL - аналитические функции OVER группы?
- 28. SQL: Может ли одно предложение OVER поддерживать несколько функций окна?
- 29. Предложение по обращению с Oracle AQ dequeue
- 30. Предложение Oracle EXISTS Vs ROWNUM = 1
Если сомневаетесь, прочитайте инструкцию: http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions004.htm#SQLRF06174 –