常用sql001_partition by 以及 row_number()和 dense_rank()和rank()区别
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()区别相关推荐
- 函数专题:sum、row_number、count、rank\dense_rank over
来源:http://blog.csdn.net/bbliutao/article/details/7727320 一.sum over sum over主要用来对某个字段值进行逐步累加 SELECT ...
- SQL 中 Rank、row_number、dense_rank 三种排序函数的区别
现有一张工资表,需要对其进行排名,工资相同的人并列排名,然后再排名,很多刚接触的小伙伴估计第一时间想到Rank()函数或row_number() 函数,但是结果出来后并不是自己想要的,在这里就给大家介 ...
- MySQL常用的排名函数row_number、rank、desc_rank
前提:此三个函数是在MySQL8.0版本之后才能用 . 1.下图是表的数据,有三条一样的数据 3.row_number():排名一般不用它,常用作分页查询 例一.查询分数排名第五的记录的信息: # 查 ...
- hive in 字符串_hive常用函数 concat concat_ws row_number
在应用hive在数据仓库中进行数据提取中经常会用户很多函数,为了记录自己常用的hive函数,特写这个系列的文章,记录下自己的使用心得,其中包括使用场景.用法等. 1.concat concat是字符拼 ...
- rank over 、dense_rank over 、row_number over函数的使用区别
1.rank() over 查询出指定的条件进行排名,条件相同排名相同的话,排名之间是不连续的 例如排名如 1 2 3 3 5 6 7 等,相同的排名会自动跳过 2.dense_rank() over ...
- [Mysql] RANK()函数 | ROW_NUMBER()函数 | DENSE_RANK()函数
窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ []中的内容可以省略 注意: ...
- IO流介绍、java常用的几个IO流类之间的区别,以及各自的用法、使用场景
1. IO流介绍 IO流(Input Output Stream,输入输出流),表示数据在程序内存和磁盘之间的传输.按照数据流的流向不同分为输入.输出流,输入流表示程序从磁盘读入数据,输出流表示程序往 ...
- HTML的基本知识-和常用标签-以及相对路径和绝对路径的区别
一.HTML的基本知识 1.网站:是指在因特网上根据一定的规则,使用 HTML 等制作的用于展示特定内容相关的网页集合. 网页是网站中的一"页",通常是 HTML 格式的文件,它要 ...
- 两种常用癌症免疫疗法CAR-T与TCR-T的联系和区别
一般来讲,肿瘤免疫治疗可以分为两大类.一种把肿瘤的特征"告诉"免疫细胞,让它们去定位,并造成杀伤,例如CAR-T.TCR-T.TIL.MASCT(DC-CTL)等.另一种是解除肿瘤 ...
最新文章
- 【视频】显示器固定参数struct fb_fix_screeninfo中char id[16]说明
- rm -fr后的恢复
- RxJs 操作符 withLatestFrom 在 SAP 电商云 Spartacus UI 中的应用
- 【Leetcode】【Easy】Implement strStr()
- java的super是什么意思_java中Super到底是什么意思?必须举例说明!
- 共享单车变身“行走的弹幕”,清华大学等17所高校均有投放
- linux杂谈(十七):iscsi存储分离技术
- elasticsearch设置_search的size
- springmvc应用-自定义参数解析器
- kali xss漏洞扫描工具使用教程
- 使用firefox color自定义firefox的主题
- Navicat模糊查询表
- Android 白天黑夜模式切换适配及引起的Activity销毁重启解决
- 西普实验吧CTF-Hashkill
- Datawhale组队学习之MySQL-task2
- 系统可用性SLA指标
- H3C服务器修改启动项,H3C服务器 iFIST快速安装指南-6W102
- 计算机发展史上有杰出贡献的科学家,山东省计算机文化基础考试练习题
- c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?C语言编程题 题目:任意输入4...
- 关于如何在WPS中生成附图索引
热门文章
- sscanf函数详解
- Redis介绍及常用命令【转载】
- 侯捷推荐的C++书单
- php7 断言,PHP7.2常用新特性和函数
- pcb可以给用户进程读吗_「TCP/UDP」一个端口号可以同时被两个进程绑定吗? - 一口Linux...
- linux远程仿真,11.5 仿真的远程桌面系统: XRDP 服务器
- ai模仿声音软件_你准备好跟AI机器成为同事了吗?
- android电视手机遥控器,tcl电视遥控器
- 高德h5地图api接口_在uniapp h5中在线引入高德地图js api的方法分享
- delete kubectl pod_kubectl delete