Oracle row_number() partion by使用场景
需求:
- 需要在Student表里按照每个同学的成绩排名(Grade),每个班的第一名可以继续留在本班学习,留下的同学需要知道自己班级的老师的名字。(需要连接Class表去取teacher)
解决
1. 使用row_number()函数进行编号,配合order by,以选出第一名
![](/assets/blank.gif)
- 此时选出来的将会是 Test / Emon / Dora 三者之一(五个同学的rn值分别是 1,2,3,4,5),因为根据Grade去排序,这三名同学并列第一,而 sql 只选出了 rn = 1的record
select * from(select *,row_number() over (order by GRADE desc) rnfrom student) t where rn = 1
2. 使用partition by进行分班,以选出每个班的第一名
- 此时选出来的将会是 Test / Emon / Dora 三个同学,因为根据class去分组后,再选出每个class的第一名。
select * from(select *,row_number() over (partition by CLASS_NAME order by GRADE desc) rnfrom student) t where rn = 1
3. 连接Class表以获得teacher name
select * from class clleft join( select *from(select *,row_number() over (partition by CLASS_NAME order by GRADE desc) rnfrom student) twhere rn = 1) stu on stu.CLASS_NAME = cl.CLASS_NAME;
Oracle row_number() partion by使用场景相关推荐
- oracle透明加密部署及场景使用
一 文档说明 二 钱夹的部署 2.1 指定钱夹存放位置 2.2 创建目录 2.3 创建主加密键 2.4 打开和关闭钱夹 2.5 加密列和表空间具体过程 三RAC中配置wallet钱夹 四DG端配置钱夹 ...
- Oracle Row_Number()函数用法
Oracle Row_Number()函数用法 需求:一个诊断名称对应多个诊断编码,取出现次数最多的那一个. #succeed WITH tmp AS (SELECT t1."diagnos ...
- oracle sql的应用场景,oracle 3个适用sql场景
我们使用oracle做一些统计的时候,时常碰到如下场景: 1.竖列转横列 2.分组并合并某列作为结果集 3.分组排序取首条记录 我们使用一个简化的业务场景,来展示这三个场景如何使用sql来解决. 业务 ...
- (进阶篇_01)Oracle数据同步3种场景
文章目录 一.场景分析 二.实战 2.1. 创建原表表结构+初始化数据 2.2. 创建目标表表结构 2.3. 同步前效果图 2.4. 连接串 2.5. 执行同步 2.6.执行后效果图 2.7.操作记录 ...
- oracle row_number()的用法
GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...
- oracle row_number函数操作(含实例)
今天在写oracle脚本的时候突然看到有一个用的row_number() over (partition by a order by b)结构的地方,于是查了下资料并实现了一下. 该结构实现的是将表安 ...
- oracle与db2的应用场景区别,db2和oracle语句区别
1.取前N条记录 Oracle:Select * from TableName where rownum <= N; DB2:Select * from TableName fetch firs ...
- Oracle实例迁移_真实场景实操
背景 环境: oracle为11.2版本 Linux-Centos6.5操作系统. 现状: 两台主机198,197 ,均已安装了oracle服务端. 其中198上已经创建了两个实例,197上只有orc ...
- oracle触发器使用场景,oracle触发器的一个应用场景
需求背景描述: 在真实的项目中,有这么一个需求:现在有两张表,一张产品表productinfo,一张产品推荐表recommendproduct,产品表存储着所有的产品信息,产品推荐表存储着某些比较热卖 ...
最新文章
- Sobel算子及cvSobel
- kafka安装_安装Kafka
- 集合的定义与并查操作(C语言)
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 14丨重新格式化部门表【难度中等】
- 华为美国研发中心将迁至加拿大;高通CEO否认中国5G超美国:技术上还没有,顶多算并驾齐驱;亚马逊宣布进军量子界……...
- 阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路
- java中有关线程的题目
- java程序打包成jar
- vscode创建代码截图_如何在VSCode中创建代码配置文件
- Mr.J--C语言编译错误C3861
- sql执行遇到汉字会停止执行吗_(数据)产品经理应该学会的SQL优化和进阶技巧...
- SharePoint 2010-在ribbon上添加表单,将默认control加到自定义group中
- 使用国产化的TongWeb服务器使用手册
- python编写脚本方法_python写dnf脚本录制自己点击
- 批量制作通知书会议邀请函等模板式文本并快速批量发送邮件
- 科技爱好者的极致玩物——六足机器人HEXA京东众筹启动,消费级机器人的新时代已至...
- python读取sql_如何从python读取sql
- 节能减排社会实践 与科技竞赛作品申报书
- Charles 2 - breakpoint断点、compose编辑、rewrite重写、map映射重定向、repeat重发、throttling弱网测试
- 二极管、三极管、晶闸管的区别