《Oracle列函数和分组.ppt》由会员分享,可在线阅读,更多相关《Oracle列函数和分组.ppt(17页珍藏版)》请在三一办公上搜索。
1、列函数和分组,Oracle基础,单元目标,理解分组的概念能够记忆并熟练使用常用列函数能够描述列函数和标量函数的区别能够GROUP BY进行分组查询能够使用 HAVING 子句对分组查询的结果进行筛选能够描述SQL语句的书写和执行顺序,分组的概念,举例:求每个小组的平均年龄 此时需要对每个小组分别计算,而不是计算全班同学的年龄,列函数与标量函数,常用的列函数,SUM(expression)求和MAX(expression)求最大值MIN(expression)求最小值COUNT(expression)统计记录数COUNT(DISTINCT COLNAME)统计去除重复行记录数,,列函数的使用,查
2、询员工的记录数,员工工资的总和,平均工资,最高工资,最低工资SELECT COUNT(*)count_emp,SUM(sal)sum_sal,MAX(sal)max_sal,MIN(sal)ming_sal,AVG(sal)avg_salFROM emp;,列函数的使用-对null的处理,查询所有员工的年收入SELECT SUM(sal+comm)FROM emp;SELECT SUM(sal)+SUM(comm)FROM emp;,分组查询,语法格式SELECT 列名.,列函数FROM 表名.WHERE 条件.GROUP BY 列名.ORDER BY 列名.,分组查询,查询每个部门的人数SE
3、LECT deptno,COUNT(*)FROM emp GROUP BY deptno;,分组查询,练习查询每个部门的平均工资查询每个部门的年薪和,分组查询,记住的规则:如果在SELECT 子句中,有不在列函数中的列,则该列一定要出现在GROUP BY 之后。,分组查询HAVING子句的使用,显示出平均工资大于2000的部门编号和平均工资SELECT deptno,AVG(sal)FROM empGROUP BY deptnoHAVING AVG(sal)2000;?为什么不能使用 WHERE来指定条件,SQL语句的书写顺序,SELECT 列名,列函数FROM 表名WHERE 条件GROUP
4、 BY 列名HAVING 条件ORDER BY 列名,SQL语句的书写顺序,查询20,30部门的平均工资,并将平均工资大于2000的输出,输出结果按平均工资排序SELECT deptno,AVG(sal)FROM empWHERE deptno IN(20,30)GROUP BY deptnoHAVING AVG(sal)2000 ORDER BY AVG(sal);,SQL语句的执行顺序,FROM WHEREGROUP BYHAVINGSELECTORDER BY,列函数与分组,练习显示非办事人员(CLERK)工作名称,以及从事同一工作雇员的月工资的总和,并且要满足雇员的月工资合计大于$5000,输出结果按月工资合计升序排序。,知识点总结,理解分组的概念掌握常用列函数的使用掌握列函数和标量函数的区别掌握GROUP BY子句的使用掌握 HAVING 子句的使用掌握SQL语句的书写和执行顺序,