MAX 查找组中表达式的最大值 MAX(COL ) OVER ( [ <partition_by_clause> ] < order_by_clause > )
MIN 查找组中表达式的最小值 MIN(COL ) OVER ( [ <partition_by_clause> ] < order_by_clause > )
AVG 计算组中表达式的平均值 AVG(COL ) OVER ( [ <partition_by_clause> ] < order_by_clause > )
SUM 计算组中表达式的累积和 SUM(COL ) OVER ( [ <partition_by_clause> ] < order_by_clause > )
简单测试:
SQL> select deptno,
2 ename,
3 sal,
4 max(sal) over(partition by deptno order by sal) max_sal_asc,
5 max(sal) over(partition by deptno order by sal desc) max_sal_desc,
6 min(sal) over(partition by deptno order by sal) min_sal,
7 avg(sal) over(partition by deptno order by sal) avg_sal,
8 sum(sal) over(partition by deptno order by sal) sum_sal
9 from emp;
    DEPTNO ENAME             SAL MAX_SAL_ASC MAX_SAL_DESC    MIN_SAL    AVG_SAL    SUM_SAL
---------- ---------- ---------- ----------- ------------ ---------- ---------- ----------
10 MILLER 1300 1300 5000 1300 1300 1300
10 CLARK 2450 2450 5000 1300 1875 3750
10 KING 5000 5000 5000 1300 2916.66667 8750
20 SMITH 800 800 3000 800 800 800
20 JONES 2975 2975 3000 800 1887.5 3775
20 FORD 3000 3000 3000 800 2258.33333 6775
30 JAMES 950 950 2850 950 950 950
30 WARD 1250 1250 2850 950 1150 3450
30 MARTIN 1250 1250 2850 950 1150 3450
30 TURNER 1500 1500 2850 950 1237.5 4950
30 ALLEN 1600 1600 2850 950 1310 6550
30 BLAKE 2850 2850 2850 950 1566.66667 9400
已选择12行。
上面例子说明:
max(sal) over(partition by deptno order by sal),当既有分组又有排序时,因为按sal升序,只要deptno和sal没有重复的行,每一行的sal都是该行的最大值;
如果是按sal降序排序,则第一行即为最大的行了,之后也以第一行作为max值了。
min(sal) over(partition by deptno order by sal),按升序排序,第一行已经是整个分组里最小的了,所以该分组内min值都为第一行的值;
avg(sal) over(partition by deptno order by sal),按排序顺序,每一行的avg,都为截止到当前行为止,该分组的avg值;
sum(sal) over(partition by deptno order by sal),按排序顺序,每一行的sum,都为截止到当前行为止,该分组的sum值。

Oracle 分析函数之聚集函数(MAX、MIN、AVG和SUM)的更多相关文章

  1. Oracle分析函数及常用函数: over(),rank()over()作用及用法--分区(分组)求和& 不连续/连续排名

    (1)   函数:  over()的作用及用法:    -- 分区(分组)求和. sum() over( partition by column1 order by column2 )主要用来对某个字 ...

  2. Oracle 分析函数及常用函数

    什么叫分析函数(Analytic function)? Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组 ...

  3. oracle 分析函数和开窗函数

    最近遇到一个需求,将查询出的数据按照地区分组,随机取出每个区域的2条数据,这里用到了oracle的分析和开窗函数: 最终写出的sql如下: select * from (select region,r ...

  4. 聚合函数 -AVG/MAX/MIN/STDDEV/VARIANCE/SUM/COUNT/MEDIAN

    ------------------------------------------聚合函数--------------------------------------------- --1: AVG ...

  5. GROUP BY 聚合函数(max min sum avg count) 和HAVING的 使用

    重新复习一下这个都源自于我经常需要查的一个需求 “要找到表里面 出现了两次或者三次的某个字段” 现在假设有一张表字段是 +----+---------------------+------------ ...

  6. oracle中的常用函数

    一.运算符算术运算符:+ - * / 可以在select 语句中使用连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != &l ...

  7. 【转】ORACLE日期时间 等函数大全

    转自:ORACLE日期时间函数大全 ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              ...

  8. Oracle自定义聚集函数

    今天工作中看见别人写的自定义聚集函数,所以一门心思的想搞懂,就在网上找资料了. 自定义聚集函数 自定义聚集函数接口简介 Oracle提供了很多预定义好的聚集函数,比如Max(), Sum(), AVG ...

  9. Oracle中碰到的函数和关键字收集

    一.时间处理函数 trunc(sysdate) 返回日期 to_date() to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') to_number() 转为数字 二.字 ...

随机推荐

  1. Cocoa与Cocoa Touch的区别

    Cocoa是在Mac OS X系统上原生的一个编译环境.他包含两个框架,其实就是一系列的类库,Foundation和AppKit. 在你的iPhone等掌上设备上,使用的则是他的一个子类 - Coco ...

  2. Ⅰ.Spring的点点滴滴--序章

    spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 .net篇(环境为vs2012+Spring.Core.dll) 新建一个控制台 using Spring.Context; ...

  3. 对JavaScript对象数组按指定属性和排序方向进行排序

    引子 在以数据为中心的信息系统中,以表格形式展示数据是在常见不过的方式了.对数据进行排序是必不可少的功能.排序可以分为按单个字段排序和按多个字段不同排序方向排序.单字段排序局限性较大,不能满足用户对数 ...

  4. 自定义ZXing二维码扫描界面并解决取景框拉伸等问题

    先看效果 扫描内容是下面这张,二维码是用zxing库生成的 由于改了好几个类,还是去年的事都忘得差不多了,所以只能上这个类的代码了,主要就是改了这个CaptureActivity.java packa ...

  5. 如何在C#中循环一个枚举

      在C#中要想迭代循环一个枚举,最容易想到的办法是直接进行循环,如下代码所示:   public enum Suit { Spades, Hearts, Clubs, Diamonds } publ ...

  6. GitHub帮助文档翻译2——contribution

    工欲善其事必先利其器 ,都不知道 GitHub到底是什么,还怎么玩?因为总是会读了第一句就忘了下一句,形成不了感觉,所以希望把读GitHub的帮助文档都翻译出来,总是看大段大段的东西,谁都会懵圈的.希 ...

  7. 【转】Android应用程序的数据存放目录解说

    Android的每个应用程序,都有自己的可控的目录. 在Setting/Application info里面,可以看到每个应用程序,都有Clear data和Clear cache选项. 具体这些目录 ...

  8. 模仿微博 用OC语言编写

    演示如下 源代码下载:模仿微博.zip

  9. Python阅读清单

    Python <零基础学Python(第二版)> 包括进阶 The Python Tutorial 绝对权威和主题丰富的官方教程 PEP 8 以及 PEP 257 编码风格/规范 PEP ...

  10. ubuntu修改grub背景

    grub背景由/etc/grub.d/05_debian_theme定义,修改图片只需要将图片文件放到/boot/grub,d/下即可, 修改颜色只需编辑/boot/grub.d/grub.cfg