常用sql001_partition by 以及 row_number()和 dense_rank()和rank()区别
来源:互联网 发布:和孩子一起学编程 官网 编辑:程序博客网 时间:2024/06/04 18:34
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
- 常用sql001_partition by 以及 row_number()和 dense_rank()和rank()区别
- row_number()、rank()和dense_rank()的区别以及具体使用
- Row_Number(),Rank和 Dense_Rank以及NTLINE
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- RANK、DENSE_RANK以及ROW_NUMBER区别
- hive的row_number()、rank()和dense_rank()的区别以及具体使用
- hive的row_number()、rank()和dense_rank()的区别以及具体使用
- rank(),dense_rank(),row_number()分析函数用法和区别
- rank (),dense_rank (),row_number () 常见的使用和区别
- oracle中的RANK()、ROW_NUMBER()、DENSE_RANK()区别和使用
- Row_Number,Rank,Dense_Rank区别
- Row_Number,Rank,Dense_Rank区别
- 使用Visual Leak Detector检测内存泄漏
- android表示单位长度的三种方式
- akka环境配置
- 通用hash表
- 找工作总结-机会往往留给有准备的人
- 常用sql001_partition by 以及 row_number()和 dense_rank()和rank()区别
- C#连接Access数据库提示from子语句语法错误
- libclntsh.so.11.1不能识别,解决办法
- HDU1576 A/B 扩展欧几里德简单题
- 【PAT】1067. Sort with Swap(0,*)
- 最原始webservice 部署 axis
- 有一个随机函数fun()能产生0<=X<n的数,现在要用fun()函数来产生0<=Z<m的数。
- 奇异局势
- NSLog在Release版本也会调用 - - NSAssert NSCAssert