`
shuai1234
  • 浏览: 932413 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

oracle:进行分组并取每组中的前n条记录

 
阅读更多

 

 
关键字: oracle 分组 前n条记录

题目:

在oracle中有一数据表exam_result(成绩记录表),

表中的一条记录描述了“某个班某个学生某次考试的成绩"

create table EXAM_RESULT 

  ID      NUMBER(10) not null,                   --主键
  CLASSID NUMBER(10) not null,           --  班级id,关联到班级表
  USERID  NUMBER(10) not null,             --用户id,关联到用户表
  EXAMID  NUMBER(10) not null,             --试卷id,关联到试卷表
  RESULT  NUMBER(3)                              --成绩
)

 

现在要求统计完成了试卷id为1,2,3的成绩的前3名

即完成了试卷id为1的前3名,完成了试卷id为2的前3名,完成了试卷id为3的前3名

 

  1. select * from (  
  2.       select   
  3.         e.classid,   
  4.         e.userid,   
  5.         e.examid,   
  6.         e.result,   
  7.             row_number() over (partition by e.examid order by e.examid, e.result desc) rn  
  8.                 from exam_result e   
  9.                         where e.examid in (1,2,3)  
  10. where rn <= 3  
 
分享到:
评论

相关推荐

    mysql使用GROUP BY分组实现取前N条记录的方法

    GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法。 这是测试表(也不知道怎么想的,当时表名直接敲了个aa,汗~~~~): 结果: 方法一: 代码如下:SELECT a.id,a.SName,a.ClsNo...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

    最全的oracle常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle&gt;svrmgrl SVRMGR&gt;connect internal SVRMGR&gt;startup ...

    2009达内SQL学习笔记

    如果想在多个列上进行排序,必须对每个列指定DESC关键字。 升序是默认的,可不写,但降序必须写。 六、WHERE子句,选择、过滤 其后只能跟逻辑语句,返回值只有ture或false 如: select last_name,salary from s...

    ORACLE之常用FAQ V1.0(整理)

    [Q]怎么样实现分组取前N条记录 13 [Q]怎么设置存储过程的调用者权限 13 [Q]怎么快速获得用户下每个表或表分区的记录数 13 [Q]可以利用utl_smtp包发邮件,以下是一个发送简单邮件的例子程序 14 [Q]可以利用utl_file包...

    orcale常用命令

    要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle&gt;sqlplus SQL&gt;connect internal SQL&gt;startup SQL&gt;quit b、关闭ORACLE系统 oracle&gt;sqlplus SQL&gt;connect internal ...

    javaOA办公系统模块设计方案.pdf

    系统设置:修改系统名称,每页显⽰条数, 邮件服务配置,站内信配置 15. 站内信:收信箱和发信箱,websocket技术通讯技术做的及时收信提醒,可配置语⾳提⽰来信 -----------------------------通讯模块 单聊群聊发图...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例077 跳过数据输出中指定的记录 111 实例078 执行指定次数的循环 112 2.7 自定义函数 113 实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例077 跳过数据输出中指定的记录 111 实例078 执行指定次数的循环 112 2.7 自定义函数 113 实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数...

    经典SQL语句大全

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    数据库操作语句大全(sql)

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    sql经典语句一部分

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    mysql数据库的基本操作语法

    foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据 check:检查,指定一个表达式,用于检验指定数据 MySQL不支持check约束,但可以使用check约束,而没有任何效果; 根据约束数据列限制,约束...

    测试培训教材

    按照尽早进行测试的原则,测试人员应该在需求阶段就介入,并贯穿软件开发的全过程。就测试过程本身而言,应该包含以s下几个阶段。  -测试需求的分析和确定。  -测试计划。  -测试设计。  -测试执行。  -...

    C#编程经验技巧宝典

    93 &lt;br&gt;0144 如何自定义货币值中的小数点 94 &lt;br&gt;0145 如何自定义货币值中小数点左边数字分组字符 94 &lt;br&gt;0146 如何自定义货币值中小数点左边每一组的位数 95 &lt;br&gt;0147 如何自定义百分比值中小数...

Global site tag (gtag.js) - Google Analytics