有个成绩表 score(student_no,Subject_no,Score)分别为学号,课程号,成绩。我想用语句查询出每科的前三名学生的学号,请各位高手教教小弟

1.创建测试语句:

create table score(student_no varchar2(3),Subject_no varchar2(20),Score number);

insert into score values('001','语文',70);

insert into score values('001','数学',60);

insert into score values('001','英语',90);

insert into score values('002','语文',78);

insert into score values('002','数学',67);

insert into score values('002','英语',80);

insert into score values('003','语文',89);

insert into score values('003','数学',60);

insert into score values('003','英语',97);

insert into score values('004','语文',50);

insert into score values('004','数学',67);

insert into score values('004','英语',70);

insert into score values('005','语文',79);

insert into score values('005','数学',65);

insert into score values('005','英语',79);

insert into score values('006','语文',74);

insert into score values('006','数学',56);

insert into score values('006','英语',87);

commit;

2.产生结果:

select * from (

select t.*,row_number() over(partition by t.subject_no order by t.score desc) pm from score t) where pm<4;

STUDENT_NO SUBJECT_NO SCORE PM

002 数学 67 1

004 数学 67 2

005 数学 65 3

003 英语 97 1

001 英语 90 2

006 英语 87 3

003 语文 89 1

005 语文 79 2

002 语文 78 3

或者以下SQL:

select* from score s1 where Score in( select Score from score s2

where s2.Subject_no=s1.Subject_no and rownum<=3

)order by s1.Subject_no,s1.Score desc

转自:http://zhidao.baidu.com/link?url=Y3KzpLugzm4HIIJXMlgOQEU-MZmeo0avJ1ZBcQ66DwWtLUaIIP9X3EsVsGCFqXfpBGUaBfcMDoCV2dOSLX8Bdq

oracle材料差异科目,ORACLE分科目统计每科前三名的学生的语句相关推荐

  1. 分科目统计每科前三名的学生

    一张表Tb_Student insert into [Tb_Student] values('001','姜子牙','语文',80); insert into [Tb_Student] values( ...

  2. Oracle中时间处理及分时间段统计

    Oracle 时间加减法 由于最近在做时段加减法相关的测试工作,在网上找到了一些关于时间加减方面的算法,正好可以解决燃眉之急,也希望能够帮到更多的Oracle初学者! 加法   select sysd ...

  3. C语言按各科分数段统计人数,(更新啦)学校学生成绩统计通用模板(科目、分数、统计分数段等均可自定,班级数、学生人数不受限制)...

    更新说明: 1.增加了导入.导出数据功能. 2.该功能可以实现版本更新时不用手动复制数据,可实现一键导入导出. 导语微信号☞gdpc-service 这是一款适用于学校平时统一考试成绩统计表.这是长期 ...

  4. oracle stalestats_深入理解oracle优化器统计数据(Optimizer Statistics)

    理解oracle优化器统计数据 首先来介绍oracle数据库使用基于规则优化器(RBO)来决定如何执行一个sql语句.基于规则优化器顾名思义,它是遵循一组规则来判断一个sql语句的执行计划.这组规则是 ...

  5. oracle 大表统计分析,oracle表的分析统计

    oracle表的分析统计 [总结] Oracle 表的分析统计 讨论一: 使用 dbms_stats 还是 analyze 自从 Oracle8.1.5 引入 dbms_stats 包, Oracle ...

  6. Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数

    Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数 一.概述 1.本文系统的整理了,Oracle中常见的几个函数用法,都是涉及到条件判断分支类的 ...

  7. 泉州中考分数如何计算机,2019年泉州中考总分多少分,泉州中考各个科目多少分...

    泉州中考2018考试科目及分值 科目分值 语文150分 数学150分 英语150分 物理90分 化学60分 思品20分 历史20分 体育10分 总分650分 泉州中考中招五大变化 1.实行全省统一考试 ...

  8. oracle精确匹配时间,Oracle时间精确到时、分、秒处理方法

    Oracle时间精确到时.分.秒处理方法 一般数据库中时间的格式为DATE类型,而我们从页面中获取的时间往往为String类型,这个就需要类型的转换.一般我们会通过调用 Java.text.Simpl ...

  9. [Oracle]UNIX与Windows 2000上Oracle的差异(I)

    作者:Ian Adam & David Stien, SAIC Ltd  日期:19-Dec-2003 出处:http://www.dbanotes.net 翻译:Fenng -------- ...

最新文章

  1. 《数据安全管理办法(征求意见稿)》发布 为个人数据安全加把锁
  2. Flume的安装与配置
  3. WebGL 浏览器函数
  4. 阿联酋是发达国家还是发展中国家
  5. Android开发工具之Android Studio----版本控制SVN使用(一)
  6. windows7 32升级64位 硬盘安装_LabVIEW 2018(32/64)位 软件安装教程
  7. mac SecureCRT设置
  8. php 获取sql字段名,php – 使用DISTINCT和UNION在SQL查询中获取字段名称
  9. Flask中的 url_for() 函数
  10. HDU1871 无题【序列处理】
  11. 混合高斯模型背景建模原理
  12. 使用js打印网页局部图片(内容)
  13. openg显示Bmp图片
  14. 初探MYD-AM335x开发板
  15. 毕业设计结论计算机应用技术,计算机应用技术(网络、软件)毕业设计实施方案...
  16. 工作总结9:这一个月来犯的错
  17. Postman 接口神器
  18. 智能车寻线算法之北科寻线可能用的方法
  19. thinksns php7,centos 7 部署Thinksns的思路详解
  20. python和报表生成工具_推荐一个利用 python 生成 pptx 分析报告的工具包:reportgen...

热门文章

  1. 正儿八经的详细讲java内部类
  2. 2.2.1 计算机网络之传输介质(双绞线、同轴电缆、光纤、无线电缆、微波、激光、红外线)
  3. 2.2.2 定点数的运算(移位、原码和补码的加减乘除、溢出概念和判别方法)
  4. echart饼图标签重叠_Echarts 解决饼图文字过长重叠的问题
  5. vant 做表格_Vant List 列表
  6. lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...
  7. 对YUV4:2:0认识理解
  8. C++ 重载机制实现原理
  9. 网站改成静态页面打不开_稳定网站排名的基本条件 - 最蜘蛛池外推快速收录
  10. qthread run结束了算销毁吗_拼多多,一面,i++ 是线程安全的吗?一脸蒙逼!