温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-22 21:02:10 来源:网络 阅读:769 作者:运维少年 栏目:关系型数据库

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> 
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI