博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用sql001_partition by 以及 row_number()和 dense_rank()和rank()区别
阅读量:6201 次
发布时间:2019-06-21

本文共 1412 字,大约阅读时间需要 4 分钟。

create table  student ( sid varchar2(10), --学号 sname varchar2(10), --姓名 classid varchar2(10), --班级号 score  int   --分数);

问题一:   班级中平均分最高的 班级号 以及 分数;

 

insert into  student values('001','z001','1',80);insert into  student values('002','z001','1',90);insert into  student values('003','z001','1',70);insert into  student values('004','z001','1',90);insert into  student values('005','z001','1',80);insert into  student values('006','z001','1',70);insert into  student values('007','z001','2',60);insert into  student values('008','z001','2',70);insert into  student values('009','z001','2',50);insert into  student values('010','z001','2',70);insert into  student values('011','z001','2',60);insert into  student values('012','z001','2',50);

 

--求解sql: SELECT * FROM (SELECT  CLASSID,AVG(score) score_ FROM STUDENT GROUP BY CLASSID  ORDER BY score_ DESC) WHERE ROWNUM=1 ;

问题二: 求每个班级第二名的学生的  学号 和  分数 (如果并列第二,全部求出)

 

原始数据:

执行如下sql:

 

select  s.* from (select  t.* , dense_rank() over(partition by classid order by score) as cn  from  student   t ) s where s.cn = 2;

 

执行结果:

分析以上sql:

 

select  t.* , dense_rank() over(partition by classid order by score) as cn  from  student   t

 

以上sql的执行结果:

以下是   row_number()  和  dense_rank的区别: 区别在于最后一行 cn 上

 

select  t.* , row_number() over(partition by classid order by score) as cn  from  student   t

 

rank() 的用法:

select  t.* , RANK() over(partition by classid order by score) as cn  from  student   t

 

你可能感兴趣的文章
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>
我的友情链接
查看>>
Juniper 基于路由的×××
查看>>
HDU - 2018 - 母牛的故事(dp)
查看>>
基于matlab的fft变换中参数的设置
查看>>
如何查找JSP页面中的错误
查看>>
2016 年总结
查看>>
Python学习开始
查看>>
VC6.0之Debug调试总结
查看>>
Android应用程序消息处理机制(Looper、Handler)分析(4)
查看>>
C++ 类成员的构造和析构顺序
查看>>
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
Google API设计指南-资源名称
查看>>
最全React技术栈技术资料汇总(收藏)
查看>>
bat文件的一些小技巧
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
flex 学习笔记 stage
查看>>
Kali-linux Arpspoof工具
查看>>