1、使用GROUP BY子句数据分组

2、使用HAVING子句过滤分组结果集。

3、组函数类型:AVG COUNT MAX MIN SUM

4、COUNT(*)返回表中记录总数。

5、COUNT(expr)返回 expr不为空的记录总数

 

计算平均奖金

SQL> select sum(comm)/count(*) 方式一,sum(comm)/count(comm) 方式二,avg(comm) 方式三

  2  from emp;

 

    方式一     方式二     方式三                                                                                                                      

---------- ---------- ----------                                                                                                                      

157.142857        550        550        

 

分组数据:求各个部门的平均工资

SQL> select deptno,avg(sal)

  2  from emp

  3  group by deptno;

group by作用于多列: 按部门,不同的工种,统计平均工资

SQL> select deptno,job,avg(sal)

  2  from emp

  3  group by deptno,job;

group by作用于多列:先按照第一列分组;如果相同,再按照第二列分组

SQL> --having: 对分组后的结果,再进行条件过滤

SQL> --:求部门的平均工资大于2000的部门

SQL> select deptno,avg(sal)

  2  from emp

  3  group by deptno

  4  having avg(sal)>2000;

 

    DEPTNO   AVG(SAL)                                                                                                                                 

---------- ----------                                                                                                                                 

        20       2175                                                                                                                                 

        10 2916.66667  

               

     group by的增强

SQL> select deptno,job,sum(sal)

  2  from emp

  3  group by rollup(deptno,job);

     break on deptno skip 2

SQL> /

 

    DEPTNO JOB         SUM(SAL)                                                                                                                       

---------- --------- ----------                                                                                                                       

        10 CLERK           1300                                                                                                                       

           MANAGER         2450                                                                                                                       

           PRESIDENT       5000                                                                                                                       

                           8750                                                                                                                       

                                                                                                                                                      

                                                                                                                                                      

        20 CLERK           1900                                                                                                                       

           ANALYST         6000                                                                                                                       

           MANAGER         2975                                                                                                                       

                          10875                                                                                                                       

                                                                                                                                                      

                                                                                                                                                      

        30 CLERK            950                                                                                                                       

           MANAGER         2850                                                                                                                       

           SALESMAN        5600                                                                                                                       

                           9400                                                                                                                       

                                                                                                                                                      

                                                                                                                                                      

                          29025   

 

 

 

 

 

 

posted on 2012-04-20 00:18  千里烟波226  阅读(236)  评论(0编辑  收藏  举报