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()区别的更多相关文章

  1. Hive中row_number()、dense_rank()、rank()的区别

    摘要 本文对Hive中常用的三个排序函数row_number().dense_rank().rank()的特性进行类比和总结,并通过笔者亲自动手写的一个小实验,直观展现这三个函数的特点. 三个排序函数 ...

  2. 大数据学习day29-----spark09-------1. 练习: 统计店铺按月份的销售额和累计到该月的总销售额(SQL, DSL,RDD) 2. 分组topN的实现(row_number(), rank(), dense_rank()方法的区别)3. spark自定义函数-UDF

    1. 练习 数据: (1)需求1:统计有过连续3天以上销售的店铺有哪些,并且计算出连续三天以上的销售额 第一步:将每天的金额求和(同一天可能会有多个订单) SELECT sid,dt,SUM(mone ...

  3. SQL分页查询,纯Top方式和row_number()解析函数的使用及区别

    听同事分享几种数据库的分页查询,自己感觉,还是需要整理一下MS SqlSever的分页查询的. Sql Sever 2005之前版本: select top 页大小 * from 表名 where i ...

  4. 两种常用的jquery事件加载的方法 的区别

    两种常用的jquery事件加载的方法   $(function(){});  window.onload=function(){}  第一个呢,是在DOM结构渲染完成以后调用的,这时候网页中一些资源还 ...

  5. MySQL数据库中常用的引擎有几种?有什么区别?

    1.常用的3种  2.InnoDB Myisam Memory 3.InnoDB跟Myisam的默认索引是B+tree,Memory的默认索引是hash 区别: 1.InnoDB支持事务,支持外键,支 ...

  6. 总结distinct、group by 、row_number()over函数用法及区别

    distinct和group by 是一样的,查询去重,只能是全部重复的,也可以理解为针对单例,因为一行有一个字段不一样,他们就会认为这两行内容是不重复的.但是使用row_number()over这个 ...

  7. dense_rank()和rank() 窗口函数 mysql

    dense_rank()的语法 DENSE_RANK() OVER ( PARTITION BY <expression>[{,<expression>...}] ORDER ...

  8. 常用jsp include用法,三种include的区别

    <@ include file=””> :静态导入,jsp指令,同一个request , <jsp:include page=”” flush=””>:动作元素,不同一个req ...

  9. 试议常用Javascript 类库中 throttle 与 debounce 辅助函数的区别

    问题的引出 看过我前面两篇博客的童鞋可能会注意到都谈到了事件处理的优化问题. 在很多应用中,我们需要控制函数执行的频率, 例如 窗口的 resize,窗口的 scroll 等操作,事件触发的频率非常高 ...

随机推荐

  1. Bootstrap入门七:按钮

    1.可作为按钮使用的标签或元素 为 <a>.<button> 或 <input> 元素添加按钮类(button class)即可使用 Bootstrap 提供的样式 ...

  2. caffe 中 plot accuracy和loss, 并画出网络结构图

    plot accuracy + loss 详情可见:http://www.2cto.com/kf/201612/575739.html 1. caffe保存训练输出到log 并绘制accuracy l ...

  3. UWP入门——应用数据和设置

    数据有两个基本的分类,应用数据和用户数据,而用户数据则为由用户拥有的数据,如文档,音乐或电子邮件等,下面将大致的介绍一下应用数据的基本操作. 应用数据:应用数据包含APP的状态信息(如运行时状态,用户 ...

  4. Rsync服务部署使用

    rsync服务搭建过程(daemon模式) 配置服务 在/etc/rsyncd.conf文件中写入相应的配置: uid = root gid = root use chroot = no max co ...

  5. PHP渗透中的奇淫技巧--检查相等时的漏洞

    PHP是现在网站中最为常用的后端语言之一,是一种类型系统 动态.弱类型的面向对象式编程语言.可以嵌入HTML文本中,是目前最流行的web后端语言之一,并且可以和Web Server 如apache和n ...

  6. UVALive 6886 Golf Bot FFT

    Golf Bot 题目连接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129724 Description Do ...

  7. codevs 1191 树轴染色 线段树区间定值,求和

    codevs 1191 树轴染色 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.codevs.cn/problem/1191/ Des ...

  8. Android 5.0 源代码结构

    本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第2章,第2.2节分析Android源代码结构,作者 李骏. 网址:https://yq.aliyun.com/artic ...

  9. git push时提示"fatal: The current branch master has no..."

    git push到远程仓库时提示:fatal: The current branch master2 has no upstream branch. To push the current branc ...

  10. VPP电源控制(VPP Power)-- 由DC-DC变换集成电路MC34063组成

    http://www.willar.com/article/article_view.asp?id=463 由DC-DC变换集成电路MC34063组成,34063 广泛应用于于DC-DC的电源转换电路 ...