码迷,mamicode.com
首页 > 数据库 > 详细

oracle菜鸟学习之 分析函数-排序

时间:2018-11-21 00:22:18      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:selected   返回   var   分析函数   erb   number   oracle   varchar2   cheng   

oracle菜鸟学习之 分析函数-排序

排序函数

1.row_number:返回连续的排序,无论值是否相等
2.rank:具有相等值得行排序相同,序数值随后跳跃
3.dense_rank:具有相等值得行排序相同,序号是连续得

实验表

create table chengji(sno number,km varchar2(10),score number);
insert into chengji values(1,‘YW‘,60);
insert into chengji values(1,‘SX‘,60);
insert into chengji values(1,‘YY‘,60);
insert into chengji values(2,‘YW‘,70);
insert into chengji values(2,‘SX‘,70);
insert into chengji values(3,‘YW‘,80);

SQL> select * from chengji;

       SNO KM                      SCORE
---------- ------------------------------ ----------
     1 YW                     60
     1 SX                     60
     1 YY                     60
     2 YW                     70
     2 SX                     70
     3 YW                     80
     1 YW                     60
     1 SX                     60
     1 YY                     60
     2 YW                     70
     2 SX                     70

       SNO KM                      SCORE
---------- ------------------------------ ----------
     3 YW                     80

12 rows selected.

SQL> 

row_number

格式:row_number() over()
排序类似排名,如果A和B的值都是100,那么A的排序为1,B的排序为2

SQL> select sno,km,score,row_number() over (order by score desc) from chengji;

       SNO KM          SCORE ROW_NUMBER()OVER(ORDERBYSCOREDESC)
---------- ------ ---------- ----------------------------------
     3 YW         80                      1
     3 YW         80                      2
     2 YW         70                      3
     2 YW         70                      4
     2 SX         70                      5
     2 SX         70                      6
     1 SX         60                      7
     1 YY         60                      8
     1 SX         60                      9
     1 YW         60                     10
     1 YY         60                     11

       SNO KM          SCORE ROW_NUMBER()OVER(ORDERBYSCOREDESC)
---------- ------ ---------- ----------------------------------
     1 YW         60                     12

12 rows selected.

SQL> 

rank

排序类似排名,如果A和B的值都是100,那么A的排序为1,B的排序为1,C的为3

SQL> select sno,km,score,rank() over (order by score desc) from chengji;

       SNO KM          SCORE RANK()OVER(ORDERBYSCOREDESC)
---------- ------ ---------- ----------------------------
     3 YW         80                1
     3 YW         80                1
     2 YW         70                3
     2 YW         70                3
     2 SX         70                3
     2 SX         70                3
     1 SX         60                7
     1 YY         60                7
     1 SX         60                7
     1 YW         60                7
     1 YY         60                7

       SNO KM          SCORE RANK()OVER(ORDERBYSCOREDESC)
---------- ------ ---------- ----------------------------
     1 YW         60                7

12 rows selected.

SQL> 

dense_rank

排序类似排名,如果A和B的值都是100,那么A的排序为1,B的排序为1,C的排序为2

SQL> select sno,km,score,dense_rank() over (order by score desc) from chengji;

       SNO KM          SCORE DENSE_RANK()OVER(ORDERBYSCOREDESC)
---------- ------ ---------- ----------------------------------
     3 YW         80                      1
     3 YW         80                      1
     2 YW         70                      2
     2 YW         70                      2
     2 SX         70                      2
     2 SX         70                      2
     1 SX         60                      3
     1 YY         60                      3
     1 SX         60                      3
     1 YW         60                      3
     1 YY         60                      3

       SNO KM          SCORE DENSE_RANK()OVER(ORDERBYSCOREDESC)
---------- ------ ---------- ----------------------------------
     1 YW         60                      3

12 rows selected.

SQL> 

oracle菜鸟学习之 分析函数-排序

标签:selected   返回   var   分析函数   erb   number   oracle   varchar2   cheng   

原文地址:http://blog.51cto.com/xiaowangzai/2319603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!