Oracle 分析函数 ---OVER(),row_number(),partition by

来源:互联网 发布:数学计算软件 编辑:程序博客网 时间:2024/05/21 10:24

/*****************分析函数的计算顺序问题*************/
oracle分析函数中select over(partition by col1 order by col2) from test order by ...

关于partition by 和 组内order by以及最后的order by的执行顺序:
over 中的partition为分组, order by是视窗内排序,
先执行 partition 然后order by 如 partition by col_a order by col_b 的执行排序效果类似于order by col_a, col_b 这样的排序效果,
如果再在最后加order by,是在前边分组排序的结果基础上进行排序。

OVER()

ROW_NUMBER() :最内排序的编号

原始table:


以deptno,team 分组,然后组内排序,


以deptno分组,然后组内排序,