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. 函数专题:sum、row_number、count、rank\dense_rank over

    来源:http://blog.csdn.net/bbliutao/article/details/7727320 一.sum over sum over主要用来对某个字段值进行逐步累加 SELECT  ...

  2. SQL 中 Rank、row_number、dense_rank 三种排序函数的区别

    现有一张工资表,需要对其进行排名,工资相同的人并列排名,然后再排名,很多刚接触的小伙伴估计第一时间想到Rank()函数或row_number() 函数,但是结果出来后并不是自己想要的,在这里就给大家介 ...

  3. MySQL常用的排名函数row_number、rank、desc_rank

    前提:此三个函数是在MySQL8.0版本之后才能用 . 1.下图是表的数据,有三条一样的数据 3.row_number():排名一般不用它,常用作分页查询 例一.查询分数排名第五的记录的信息: # 查 ...

  4. hive in 字符串_hive常用函数 concat concat_ws row_number

    在应用hive在数据仓库中进行数据提取中经常会用户很多函数,为了记录自己常用的hive函数,特写这个系列的文章,记录下自己的使用心得,其中包括使用场景.用法等. 1.concat concat是字符拼 ...

  5. rank over 、dense_rank over 、row_number over函数的使用区别

    1.rank() over 查询出指定的条件进行排名,条件相同排名相同的话,排名之间是不连续的 例如排名如 1 2 3 3 5 6 7 等,相同的排名会自动跳过 2.dense_rank() over ...

  6. [Mysql] RANK()函数 | ROW_NUMBER()函数 | DENSE_RANK()函数

    窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ []中的内容可以省略 注意: ...

  7. IO流介绍、java常用的几个IO流类之间的区别,以及各自的用法、使用场景

    1. IO流介绍 IO流(Input Output Stream,输入输出流),表示数据在程序内存和磁盘之间的传输.按照数据流的流向不同分为输入.输出流,输入流表示程序从磁盘读入数据,输出流表示程序往 ...

  8. HTML的基本知识-和常用标签-以及相对路径和绝对路径的区别

    一.HTML的基本知识 1.网站:是指在因特网上根据一定的规则,使用 HTML 等制作的用于展示特定内容相关的网页集合. 网页是网站中的一"页",通常是 HTML 格式的文件,它要 ...

  9. 两种常用癌症免疫疗法CAR-T与TCR-T的联系和区别

    一般来讲,肿瘤免疫治疗可以分为两大类.一种把肿瘤的特征"告诉"免疫细胞,让它们去定位,并造成杀伤,例如CAR-T.TCR-T.TIL.MASCT(DC-CTL)等.另一种是解除肿瘤 ...

最新文章

  1. 【视频】显示器固定参数struct fb_fix_screeninfo中char id[16]说明
  2. rm -fr后的恢复
  3. RxJs 操作符 withLatestFrom 在 SAP 电商云 Spartacus UI 中的应用
  4. 【Leetcode】【Easy】Implement strStr()
  5. java的super是什么意思_java中Super到底是什么意思?必须举例说明!
  6. 共享单车变身“行走的弹幕”,清华大学等17所高校均有投放
  7. linux杂谈(十七):iscsi存储分离技术
  8. elasticsearch设置_search的size
  9. springmvc应用-自定义参数解析器
  10. kali xss漏洞扫描工具使用教程
  11. 使用firefox color自定义firefox的主题
  12. Navicat模糊查询表
  13. Android 白天黑夜模式切换适配及引起的Activity销毁重启解决
  14. 西普实验吧CTF-Hashkill
  15. Datawhale组队学习之MySQL-task2
  16. 系统可用性SLA指标
  17. H3C服务器修改启动项,H3C服务器 iFIST快速安装指南-6W102
  18. 计算机发展史上有杰出贡献的科学家,山东省计算机文化基础考试练习题
  19. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?C语言编程题 题目:任意输入4...
  20. 关于如何在WPS中生成附图索引

热门文章

  1. sscanf函数详解
  2. Redis介绍及常用命令【转载】
  3. 侯捷推荐的C++书单
  4. php7 断言,PHP7.2常用新特性和函数
  5. pcb可以给用户进程读吗_「TCP/UDP」一个端口号可以同时被两个进程绑定吗? - 一口Linux...
  6. linux远程仿真,11.5 仿真的远程桌面系统: XRDP 服务器
  7. ai模仿声音软件_你准备好跟AI机器成为同事了吗?
  8. android电视手机遥控器,tcl电视遥控器
  9. 高德h5地图api接口_在uniapp h5中在线引入高德地图js api的方法分享
  10. delete kubectl pod_kubectl delete