zoukankan      html  css  js  c++  java
  • Oracle 聚合函数

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

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

    COUNT统计行数量

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

    1、查询有多少岗位

    1 selete count(distinct job) from emp;

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

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

    SUM:获取单个列的合计值

    3、查询工资总额

    1 selete sum(sal) from emp;

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

    4、查询最早入职时间

    1 selete min(hiredate) from emp;

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

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

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

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

    易错:

    1 select job,avg(sal)
    2 from emp
    3 group by job
    4 where sal>2500

    当改写成:

    1  select job,avg(sal)
    2  from emp
    3  where sal>2500
    4  group by job

    执行结果:

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

    应该改成:

    1 select job,avg(sal)
    2 from emp
    3 group by job
    4 having round(avg(sal))>2500

    执行结果:

    wherehaving的区别

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

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

    1 selete deptno ,round(avg(sal)),max(sal),sum(sal)
    2 from emp
    3 group by deptno
    4 order by sum(sal)

    执行结果:

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

  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/echola/p/9513449.html
Copyright © 2011-2022 走看看