聚合函数
SQL中提供的聚合函数可以用来统计、求和、求最值等等。

此处采用Oracle 11g中其他用户SCOTT中的EMP表,进行演示。

COUNT:统计行数量

COUNT(*)统计的是结果集的总条数,而count(字段)统计的是该字段中不为null的总条数

1、查询有多少岗位

 selete count(distinct job) from emp;

2、查询员工总数 入职时间 最高工资 工资总额 平均工资

 selete count(empno),
to-char(min(hiredate),'yyyy-mm-dd')||'----'||to_char(max(hiredate),'yyyy-mm-dd') as 入职时间,
max(sal),sum(sal),avg(sal)
from emp;

SUM:获取单个列的合计值

3、查询工资总额

 selete sum(sal) from emp;

AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值

4、查询最早入职时间

 selete min(hiredate) from emp;

group by 分组函数 一般与聚合函数组合用

5、查询每个岗位最高工资

 selete job,max(sal) from emp group by job;

6、查询岗位平均工资>2500

易错:

 select job,avg(sal)
from emp
group by job
where sal>2500

当改写成:

  select job,avg(sal)
from emp
where sal>2500
group by job

执行结果:

虽然能执行出结果,但是它是将所有大于2500的工资的岗位,集合在一起,算平均工资,不符合要求。

应该改成:

 select job,avg(sal)
from emp
group by job
having round(avg(sal))>2500

执行结果:

wherehaving的区别:

  • where仅仅用于处理从from子句中返回的值。
  • having子句通常是与order by子句一起使用的,因为having的作用是对使用group by进行分组统计后的结果再进行下一步的筛选。

7、查询每个部门员工的平均工资 最高工资 工资总额 根据工资总额排序

 selete deptno ,round(avg(sal)),max(sal),sum(sal)
from emp
group by deptno
order by sum(sal)

执行结果:

总结:SQL的执行顺序:
         –第一步:执行FROM
         –第二步:WHERE条件过滤
         –第三步:GROUP BY分组
         –第四步:执行SELECT投影列
         –第五步:HAVING条件过滤
         –第六步:执行ORDER BY 排序

Oracle 聚合函数的更多相关文章

  1. oracle聚合函数avg()注意点

    avg:用avg函数进行平均运算时会忽略空值(即最终出现的平均值不对[如果原始数据中存在空值的话]),可以这样子来解决:avg(nvl(comm,0))或者sum(comm)/count(*)---- ...

  2. ORACLE聚合函数细节

    select * from emp order by mgr; 概要 select count(1), --14 sum(1), --14 count(*), --14 count(distinct ...

  3. oracle 聚合函数 LISTAGG ,将多行结果合并成一行

    LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name)  -- 将 Item_Cate ...

  4. oracle聚合函数XMLAGG用法简介

    XMLAGG函数语法基本如图,可以用于列转行,列转行函数在oracle里有好几种方法,wm_concat也可以做 这里介绍wm_concat是因为XMLAGG实现效果和wm_concat是一样的,只是 ...

  5. Oracle聚合函数

    max(),min(),avg(),sum() 其中 avg(),sum()只能操作数字  , max(),min()能操作数字.日期.字母 等.

  6. oracle聚合函数及行专列,pivot rollup cube

    1.原始数据 --方法-: --以单位分组,计算每类特殊情况的合计以及按照单位的小计数 with a as (SELECT b.szfz, case  when tsqk is not null th ...

  7. oracle数据库函数之============‘’分析函数和聚合函数‘’

    1分析函数 分析函数根据一组行来进行聚合计算,用于计算完成狙击的累积排名等,分析函数为每组记录返回多个行 rank_number() 查询结果按照次序排列,不存在并列和站位的情况,可以用于做Oracl ...

  8. ORACLE 自定义聚合函数

    用户可以自定义聚合函数  ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...

  9. oracle 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值

    create or replace function MAX_O3_8HOUR_ND(value NUMBER) return NUMBER parallel_enable aggregate usi ...

随机推荐

  1. (转载)C#控件缩写规范

    标准控件缩写规范 类 型 前 缀 示 例 Adrotator adrt adrtTopAd BulletedList blst blstCity Button btn btnSubmit Calend ...

  2. MTP 写字机器

    目标 无意中看到下面视频,我打算也实现一个类似机器 视频.视频2.视频3 来源于油管Creativity Buzz的创意,顺便了解到有家AxiDraw公司在生产这种机器,淘宝上也有售卖. 想法 观看视 ...

  3. NOIP2018退役祭

    退役感受 在写下这个标题的时候,我的心情是复杂的,无非就是感觉像对一位将要赶往战场的士兵说:"你的战争已经输掉了." 退役了,没有什么好说的.无论再怎么抱怨这题出的真烂也无法改变了 ...

  4. SPOJ 839 Optimal Marks(最小割的应用)

    https://vjudge.net/problem/SPOJ-OPTM 题意: 给出一个无向图G,每个点 v 以一个有界非负整数 lv 作为标号,每条边e=(u,v)的权w定义为该边的两个端点的标号 ...

  5. 【Java】【路径】

    [java中Class.getResource用法(用于配置文件的读取)] 用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的F ...

  6. Oracle分页查询排序数据重复问题

    参考资料: http://docs.oracle.com/database/122/SQLRF/ROWNUM-Pseudocolumn.htm#SQLRF00255 http://blog.csdn. ...

  7. vs 2013 编译cocos2d-x-3.9

    下载地址:链接: https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ 提取码: p1pb 下载完成后,解压 进入build 目录 使用vs 2013 打开工 ...

  8. 前端html5/css基础知识

    https://www.cnblogs.com/clschao/articles/10073124.html

  9. 前端阶段_html部分2后台frame的初始构架案例

    1.<frameset cols="25%,75%">          把页面分为1:3,并且使用frame的同时应该删除body标签 2.<frame src ...

  10. GCD LCM UVA - 11388

    代码很短理解不容易,在这说不清,大家代码里寻真相. 为什么二者相除就可以A了多找点数试试理解理解. #include<stdio.h> #define mod 1000000007 #de ...