跟順序有關的幾個分析函數
row_number、rank、dense_rank、lead和lag的over窗口里,都必須有order_by_clause。
其他幾個如:first_value、last_value、max、min、avg、sum、count等,partition_by_clause和order_by_clause都是可選項。
如下測試:
SQL> select deptno,sal,row_number()over(partition by deptno) from emp;
select deptno,sal,row_number()over(partition by deptno) from emp
*
第 1 行出現錯誤:
ORA-30485: 在窗口說明中丟失 ORDER BY 表達式
其他幾個函數rank、dense_rank、lead和lag,按上面這種方法執行,都會報同樣的錯。