《Oracle列函数和分组.ppt》由会员分享,可在线阅读,更多相关《Oracle列函数和分组.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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
3、BY 列名.ORDER BY 列名.分组查询分组查询查询每个部门的人数SELECT deptno,COUNT(*)FROM emp GROUP BY deptno;分组查询分组查询练习查询每个部门的平均工资查询每个部门的年薪和 分组查询分组查询记住的规则:如果在SELECT 子句中,有不在列函数中的列,则该列一定要出现在GROUP BY 之后。分组查询分组查询HAVING子句的使用子句的使用显示出平均工资大于2000的部门编号和平均工资SELECT deptno,AVG(sal)FROM empGROUP BY deptnoHAVING AVG(sal)2000;?为什么不能使用 WHERE来
4、指定条件SQL语句的书写顺序语句的书写顺序SELECT 列名,列函数FROM 表名WHERE 条件GROUP 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语句的书写和执行顺序