需求:

  • 需要在Student表里按照每个同学的成绩排名(Grade),每个班的第一名可以继续留在本班学习,留下的同学需要知道自己班级的老师的名字。(需要连接Class表去取teacher)

    

解决

1. 使用row_number()函数进行编号,配合order by,以选出第一名

  • 此时选出来的将会是 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使用场景相关推荐

  1. oracle透明加密部署及场景使用

    一 文档说明 二 钱夹的部署 2.1 指定钱夹存放位置 2.2 创建目录 2.3 创建主加密键 2.4 打开和关闭钱夹 2.5 加密列和表空间具体过程 三RAC中配置wallet钱夹 四DG端配置钱夹 ...

  2. Oracle Row_Number()函数用法

    Oracle Row_Number()函数用法 需求:一个诊断名称对应多个诊断编码,取出现次数最多的那一个. #succeed WITH tmp AS (SELECT t1."diagnos ...

  3. oracle sql的应用场景,oracle 3个适用sql场景

    我们使用oracle做一些统计的时候,时常碰到如下场景: 1.竖列转横列 2.分组并合并某列作为结果集 3.分组排序取首条记录 我们使用一个简化的业务场景,来展示这三个场景如何使用sql来解决. 业务 ...

  4. (进阶篇_01)Oracle数据同步3种场景

    文章目录 一.场景分析 二.实战 2.1. 创建原表表结构+初始化数据 2.2. 创建目标表表结构 2.3. 同步前效果图 2.4. 连接串 2.5. 执行同步 2.6.执行后效果图 2.7.操作记录 ...

  5. oracle row_number()的用法

    GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...

  6. oracle row_number函数操作(含实例)

    今天在写oracle脚本的时候突然看到有一个用的row_number() over (partition by a order by b)结构的地方,于是查了下资料并实现了一下. 该结构实现的是将表安 ...

  7. oracle与db2的应用场景区别,db2和oracle语句区别

    1.取前N条记录 Oracle:Select * from TableName where rownum <= N; DB2:Select * from TableName fetch firs ...

  8. Oracle实例迁移_真实场景实操

    背景 环境: oracle为11.2版本 Linux-Centos6.5操作系统. 现状: 两台主机198,197 ,均已安装了oracle服务端. 其中198上已经创建了两个实例,197上只有orc ...

  9. oracle触发器使用场景,oracle触发器的一个应用场景

    需求背景描述: 在真实的项目中,有这么一个需求:现在有两张表,一张产品表productinfo,一张产品推荐表recommendproduct,产品表存储着所有的产品信息,产品推荐表存储着某些比较热卖 ...

最新文章

  1. Sobel算子及cvSobel
  2. kafka安装_安装Kafka
  3. 集合的定义与并查操作(C语言)
  4. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 14丨重新格式化部门表【难度中等】
  5. 华为美国研发中心将迁至加拿大;高通CEO否认中国5G超美国:技术上还没有,顶多算并驾齐驱;亚马逊宣布进军量子界……...
  6. 阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路
  7. java中有关线程的题目
  8. java程序打包成jar
  9. vscode创建代码截图_如何在VSCode中创建代码配置文件
  10. Mr.J--C语言编译错误C3861
  11. sql执行遇到汉字会停止执行吗_(数据)产品经理应该学会的SQL优化和进阶技巧...
  12. SharePoint 2010-在ribbon上添加表单,将默认control加到自定义group中
  13. 使用国产化的TongWeb服务器使用手册
  14. python编写脚本方法_python写dnf脚本录制自己点击
  15. 批量制作通知书会议邀请函等模板式文本并快速批量发送邮件
  16. 科技爱好者的极致玩物——六足机器人HEXA京东众筹启动,消费级机器人的新时代已至...
  17. python读取sql_如何从python读取sql
  18. 节能减排社会实践 与科技竞赛作品申报书
  19. Charles 2 - breakpoint断点、compose编辑、rewrite重写、map映射重定向、repeat重发、throttling弱网测试
  20. 二极管、三极管、晶闸管的区别

热门文章

  1. 《滚石》评出最伟大100首英文歌!!!
  2. 中国消费金融的未来,已经到来——《消费金融真经》
  3. java 怎么输出数组
  4. 长志气戒傲气 必须时刻保持冷静
  5. nginx - 负载均衡配置-负载均衡策略
  6. 2020年B证(安全员)考试及B证(安全员)考试报名
  7. Redis的数据类型 - string、hash、list
  8. 寻找旋转数组的最小值
  9. DateTime.Now 的24小时和12小时制
  10. 雪域高原,飘起“联想 智慧中国”红