Oracle中OVER子句的含義是什麼?Oracle中的OVER子句
54
A
回答
60
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
它包括用於一個特定部門中的所有行的窗口工作在。
+0
你能否解釋OVER()在沒有參數的情況下如何工作? – Lamy 2014-04-08 11:09:05
17
它是Oracle analytic functions的一部分。
24
你可以用它來轉變一些聚合函數解析到:
SELECT MAX(date)
FROM mytable
將返回1
行與單一最大,
SELECT MAX(date) OVER (ORDER BY id)
FROM mytable
將返回與正在運行的最大的所有行。
+2
你做一個很好的指出將聚合函數轉化爲分析函數。這是我從未想過的一種方式。 – user128216 2016-03-18 12:53:36
相關問題
- 1. OVER(order by)語句中的Where子句?
- 2. SQL - 排序OVER子句中
- 3. 使用OVER子句
- 4. postgres中的over子句中的where子句
- 5. DistinctCount + LastNonEmpty內OVER子句
- 6. 如何在OVER中使用COUNT子句?
- 7. T-SQL:WHERE子句中OVER(PARTITION BY ... ORDER BY ...)
- 8. 在OVER()子句中使用別名
- 9. querydsl over集合在子句中
- 10. ORACLE中的WHERE子句
- 11. ORACLE中的SQL Where子句
- 12. 在Where子句中使用ROW_NUMBER()OVER(PARTITION BY ...)選擇句柄
- 13. oracle sysdate在where子句中
- 14. Oracle DateTime在Where子句中?
- 15. OVER子句。如何通過CASE子句中的多個列進行排序?
- 16. Oracle使用子句
- 17. 的Oracle SQL Case語句的where子句
- 18. GROUP BY子句 - 的Oracle SQL
- 19. Oracle WHERE子句的性能
- 20. 如何使用OVER子句刪除SQL Server中的重複行?
- 21. T-Sql中的「Over」子句究竟做了什麼?
- 22. Oracle CLOB到varchar2 over DBLINK
- 23. Oracle 11g中的子句性能問題
- 24. ORACLE中的動態where子句
- 25. Oracle集合中的where子句
- 26. AS子句中的Oracle 11g XE
- 27. 與TO_CHAR在where子句中的Oracle
- 28. 在Java中使用Oracle的WITH子句
- 29. HAVING子句中的Oracle PL/SQL變量
- 30. Oracle SQL:where子句中的時間戳
如有疑問,請閱讀手冊:http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions004.htm#SQLRF06174 – 2015-09-07 07:33:13