跟顺序有关的几个分析函数
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,按上面这种方法执行,都会报同样的错。