oracle中的row_number,oracle中rank() over与row_number()的区别

oracle中rank() over与row_number()的区别

(2010-05-05 22:40:50)

PARTITION BY testid ORDER BY creat_time

asc根据列testid分组,按照creat_time降序排列。

rank() OVER对有相同的值,标记相同的值。row_number() 则不会。

故如果要进行排重操作,使用row_number() 将不会有重复记录的产生。

如下:

SQL> SELECT A.*,

 2 rank() OVER(PARTITION BY testid ORDER BY creat_time asc)

ROW_NUMBER

 3 FROM TEST_20090526 A;



 TESTID TESTNAME CREAT_TIME ROW_NUMBER

---------- ---------- ---------- ----------

 1 A1 20090520 1

 2 A2 20090521 1

 2 A3 20090522 2

 2 A5 20090522 2

 3 A4 20090523 1



SQL> SELECT A.*,

 2 row_number() OVER(PARTITION BY testid ORDER BY creat_time asc)

ROW_NUMBER

 3 FROM TEST_20090526 A

 4 ;



 TESTID TESTNAME CREAT_TIME ROW_NUMBER

---------- ---------- ---------- ----------

 1 A1 20090520 1

 2 A2 20090521 1

 2 A3 20090522 2

 2 A5 20090522 3

 3 A4 20090523 1

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值