东软实习之数据库(6)——分组函数

  ##分组函数

      

      分组函数

        分组函数是对表中一组记录进行操作,每组只返回一个结果,即首先要对表记录进行分组,然后再进行操作汇总,每组返回一个结果,分组时可能是整个表分为一组,也可能根据条件分成多组。

        分组函数常用到以下五个函数:

        • MIN
        • MAX
        • SUM
        • AVG
        • COUNT

      


    #MIN//MAX函数

      MIN和MAX函数主要是返回每组的最小值和最大值。

       MIN([DISTINCT|ALL] column|expression)

       MAX([DISTINCT|ALL] column|expression)  

      MIN和MAX可以用于任何数据类型 查询入职日期最早和最晚的日期

      


    #SUM函数和AVG函数

      SUM和AVG函数分别返回每组的总和及平均值。

        SUM([DISTINCT|ALL] column|expression)   

        AVG([DISTINCT|ALL] column|expression)   

        SUM和AVG函数都是只能够对数值类型的列或表达式操作。

        查询职位以SALES开头的所有员工平均工资、最低工资、最高工资、工资和。

      


    #COUNT函数

      COUNT(| [DISTINCT|ALL]表达式):返回满足条件的非空(NULL)行的数量

      查询部门30有多少个员工领取奖金。

      

       组函数中DISTINCT

        DISTINCT会消除重复记录后再使用组函数

        查询有员工的部门数量。

        

     组函数中使用NVL

        函数 NVL 函数可以使分组函数强制包含含有空值的记录

        


    #创建数据组

      

      用GROUP BY子句创建数据组

       

      通过 GROUP BY 子句可将表中满足WHERE条件的记录按照指定的列划分成若干个小组 其中GROUP BY子句指定要分组的列

       

 

      在SELECT列表中除了分组函数那些项,所有列都必须包含在GROUP BY 子句中。

      GROUP BY 所指定的列并不是必须出现在SELECT 列表中。

 


    #按多个列分组

       

       


    #排除组结果

        

        不能在 WHERE子句中限制组 可以通过 HAVING 子句限制组

        使用 HAVING 子句限制组

      • 记录已经分组.
      • 使用过组函数.
      • 与 HAVING 子句匹配的结果才输出

         


    #SELECT语句执行过程

      SELECT语句执行过程:

    1. 通过FROM子句中找到需要查询的表;
    2. 通过WHERE子句进行非分组函数筛选判断;
    3. 通过GROUP BY子句完成分组操作;
    4. 通过HAVING子句完成组函数筛选判断;
    5. 通过SELECT子句选择显示的列或表达式及组函数;
    6. 通过ORDER BY子句进行排序操作。

    #组函数的嵌套

      


    #本章总结

  • 分组函数能解决的问题
  • MIN函数和MAX函数
  • SUM函数和AVG函数
  • COUNT函数
  • 组函数中DISTINCT消除重复行
  • 组函数中空值处理
  • 通过GROUP BY子句进行分组汇总
  • GROUP BY子句使用需要注意的两个问题
  • HAVING子句的使用
  • SELECT语句的执行顺序
  • 组函数的嵌套

 

posted @ 2018-07-17 22:41  HIT王新宇  阅读(178)  评论(0编辑  收藏  举报