《Oracle-32多行函数和分析函数.ppt》由会员分享,可在线阅读,更多相关《Oracle-32多行函数和分析函数.ppt(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQL函数函数n n单行函数只对单行数据进行操作,并且每行只返回只对单行数据进行操作,并且每行只返回一个结果一个结果n n多行函数对多数据行的群组进行操作,并且每组只对多数据行的群组进行操作,并且每组只返回一个结果返回一个结果多行函数多行函数组函数组函数(聚合函数聚合函数)功能描述功能描述用于字符、数值、日期型数据的列函数用于字符、数值、日期型数据的列函数MAX(column)MAX(column)列中最大值列中最大值MIN(column)MIN(column)列中最小值列中最小值COUNT(*)COUNT(*)表中行的数量表中行的数量COUNT(column)COUNT(column)列不为
2、列不为nullnull的行数的行数COUNT(distinct column)COUNT(distinct column)ColumnColumn指定列中相异值的数量指定列中相异值的数量用于数值数据的列函数用于数值数据的列函数SUM(column)SUM(column)列中所有值的总和列中所有值的总和AVG(column)AVG(column)列中所有值的平均数列中所有值的平均数多行函数多行函数n n思考思考:n n用用GROUP BY GROUP BY 进行数据分组进行数据分组(出现在出现在selectselect后的字段必须在后的字段必须在group group by by 后出现后出现)
3、1.1.求每个部门的平均薪水求每个部门的平均薪水2.2.求各部门相同工种员工的平均工资求各部门相同工种员工的平均工资n nHAVINGHAVING子句的使用子句的使用1.1.求员工人数多于求员工人数多于4 4人的部门内员工的薪水和人的部门内员工的薪水和2.2.求各部门求各部门CLERKCLERK工种员工的平均工资工种员工的平均工资,并以平均工资降序并以平均工资降序排列排列n n(注:组函数的嵌套与单行函数不同,最多只能嵌套两层注:组函数的嵌套与单行函数不同,最多只能嵌套两层)补充:分析函数n n分析函数为每组记录返回多个行分析函数为每组记录返回多个行n n以下三个分析函数用于计算一个行在一组有
4、序行中的排以下三个分析函数用于计算一个行在一组有序行中的排以下三个分析函数用于计算一个行在一组有序行中的排以下三个分析函数用于计算一个行在一组有序行中的排位,序号从位,序号从位,序号从位,序号从1 1开始开始开始开始 ROW_NUMBER ROW_NUMBER 返回连续的排位,不论值是否相等返回连续的排位,不论值是否相等 RANKRANK 具有相等值的行排位相同,序数随后跳跃具有相等值的行排位相同,序数随后跳跃 DENSE_RANKDENSE_RANK 具有相等值的行排位相同,序号是连续的具有相等值的行排位相同,序号是连续的按员工的工资排名按员工的工资排名SELECT ename,job,de
5、ptno,sal,ROW_NUMBER()OVER (ORDER BY sal DESC)AS SAL_RANK FROM SCOTT.EMP;在各部门内按员工的工资排位,工资相同的再按在各部门内按员工的工资排位,工资相同的再按comm降序降序SELECT deptno,ename,sal,comm,RANK()OVER (PARTITION BY deptno ORDER BY sal DESC,comm DESC)RANKFROM emp;SELECT d.dname,e.ename,e.sal,DENSE_RANK()OVER(PARTITION BY e.deptno ORDER BY e.sal DESC)AS DENRANKFROM emp e,dept d WHERE e.deptno=d.deptno;补充:分析函数n n思考思考:n n1.找出每个部门工资最高的人(只选一个)n n2.找出每个部门工资最高的人(包括并列第一)n n3.找出每个部门工资最高的人(若某部门里最高工资的人有多个,选择comm高的)