1.3分组数据group by子句的使用

group子句的作用,可以使用group by子句将表中的数据分成若干组

举个栗子。

        求表中各部门的平均工资,要求显示部门号,部门的平均工资

        select    deptno,avg(sal)    from    emp    group    by    deptno;

        我们可以把上述SQL抽象出一个模板

        select    a,b,c,组函数(x)    from    table    group    by    a,b,c;

        我们又可以得到一个结论啦!在select列表中所有未包含在组函数的列都应该包含在group by子句中。

继续举栗子

        求每个部门的平均工资,要求显示部门的平均工资

        select    avg(sal)    from    emp    gruop    by    deptno;    

        结论!结论!包含在group子句中的列不必包含在select列表中。

今年栗子大丰收啊,还要举栗子

        按照部门不同的职位统计员工工资的总额(使用多个列分组)

        select    deptno,job,sum(sal)    from    emp    group    by    deptno,job;

        先按第一个列分组,如果第一个列相同。再按第2个列分组

栗子坏了--非法使用分组函数

        select    deptno,count(ename)    from    emp;

        

你可能感兴趣的:(1.3分组数据group by子句的使用)