与over函数结合的几个函数介绍

转载 2016年06月01日 12:16:05

下面以班级成绩表t2来说明其应用

t2表信息如下:
cfe               74
dss               95
ffd               95
fda               80
gds               92
gf                99
ddd               99
adf               45
asdf              55
3dd               78

select * from                                                                      
                                                                              
    select name,class,s,rank()over(partition by class order by s desc) mm from t2
                                                                              
    where mm=1;
得到的结果是:
dss               95        1
ffd               95        1
gds               92        1
gf                99        1
ddd               99        

注意:
    1.在求第一名成绩的时候,不能用row_number(),因为如果同班有两个并列第一,row_number()只返回一个结果;
select * from                                                                      
                                                                              
    select name,class,s,row_number()over(partition by class order by s desc) mm from t2
                                                                              
    where mm=1;
       95         --95有两名但是只显示一个
       92        1

       99        1 --99有两名但也只显示一个


select name,class,s, sum(s)over(partition by class order by s desc) mm from t2 --按班级对成绩进行排序并累加求和
dss               95        190  --由于两个95都是第一名,所以累加时是两个第一名的相加
ffd               95        190 
fda               80        270  --第一名加上第二名的
gds               92        92
cfe               74        166
gf                99        198
ddd               99        198
3dd               78        276
asdf              55        331
adf               45        376

OVER(PARTITION BY)函数介绍

开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。 ...

row_number() OVER(PARTITION BY)函数介绍

OVER(PARTITION BY)函数介绍 开窗函数                Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不...
  • 631799
  • 631799
  • 2012年04月01日 16:34
  • 85353

ORACLE_OVER函数

  • 2011年12月08日 22:08
  • 450KB
  • 下载

Oracle row_number() over()解析函数高效实现分页

1. Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。 分页查询格式(有order by ---三层sql): SELECT * FROM ( SELECT A.*,...

分组去重ROW_NUMBER() OVER函数的基本用法

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的RO...

oracle笔记整理7——with as、case when、merge into、分析函数over()

1) with as a) WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句所用到。b) 当查询中多次用到某一部...

oracle 分析函数over

分析函数(OVER) 目录: =============================================== 1.Oracle分析函数简介 2. Oracle分析函数简单...

oracle分析函数row_number() over()使用

http://cbf0713.blog.163.com/blog/static/9077890520102591928645/ row_number() over ([partiti...
  • lzhat
  • lzhat
  • 2017年02月28日 10:41
  • 202

分析函数OVER

准备工作: table:oracle用户scott下的emp表 ; 一. Oracle 从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 ...
  • JIM110
  • JIM110
  • 2011年09月21日 13:40
  • 1307

DB2 中row_number() over()分析函数用法

row_number() over()分析函数用法 row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:与over函数结合的几个函数介绍
举报原因:
原因补充:

(最多只允许输入30个字)