日期:2014-05-16  浏览次数:20529 次

oracle分析函数row_number() over()使用

row_number() over(partition by col1 order by col2) as 别名

表示根据col1分组,在分组内部根据col2排序

?

而这个“别名”的值就每组内部排序后的顺序编号(组内连续的唯一的)

?

partition by col1 可省略。

?

------------------------------------

?

例子:

?

根据用户名分组,在分组内部根据用户名排序 (组内连续的唯一的编码)

?

select * from

(

select id,name,row_number() over(partition by name order by name) Rownumberf

from users

) ?t

where t.Rownumberf = 1

?

?