版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用分组函数来对数据进行聚集工程目标1.统计每个部门的平均工资,和最高工资,最低工资,并按照部门号排序2.查询出平均工资高于2000的部门以及其平均工资所需知识点什么是分组函数使用分组函数查询数据使用groupby子句查询数据使用having子句过滤数据什么是分组函数?分组函数对一组数据行进行操作,并对每个组得出一个结果.EMP“EMP表中最大的SAL值”DEPTNOSAL------------------1024501050001013002080020110020300020300020297530160030285030125030950301500301250MAX(SAL)---------5000分组函数的类型AVG求平均值COUNT统计行数MAX求最大值MIN求最小值SUM求和分组函数根本语法SELECT [column,]group_function(column)FROM table[WHERE condition][GROUPBY column][ORDERBY column];使用AVG和SUM函数对于数字类型的数据,可以使用AVG和SUM函数.AVG(SAL)MAX(SAL)MIN(SAL)SUM(SAL)-----------------------------------1400160012505600SQL>SELECT AVG(sal),MAX(sal),2 MIN(sal),SUM(sal)3 FROM emp4 WHERE jobLIKE'SALES%';
使用MIN和MAX函数可以对许多类型的数据使用MIN和MAX函数.SQL>SELECT MIN(hiredate),MAX(hiredate)2FROM emp;MIN(HIREDMAX(HIRED------------------17-DEC-8012-JAN-83
使用COUNT函数COUNT(*)返回查询出的总行数.COUNT(*)---------6SQL>SELECT COUNT(*)2FROM emp3WHERE deptno=30;分组函数和空值分组函数忽略了行中所有的空行.SQL>SELECTAVG(comm)2FROMemp;AVG(COMM)---------550分组函数和NVL函数的结合NVL函数使得分组函数可以处理空值.SQL>SELECTAVG(NVL(comm,0))2FROMemp;AVG(NVL(COMM,0))----------------157.14286创立聚组数据EMP“EMP表中每个部门的平均工资”2916.666721751566.6667DEPTNOSAL------------------1024501050001013002080020110020300020300020297530160030285030125030950301500301250DEPTNOAVG(SAL)----------------102916.6667202175301566.6667创立分组数据:
GROUPBY子句根本语法将表中的数据行用GROUPBY语句分为几个组.SELECT column,group_function(column)FROM table[WHERE condition][GROUPBY group_by_expression][ORDERBY column];使用GROUPBY子句在SELECT语句中,没有使用分组函数的列必须在GROUPBY子句中SQL>SELECTdeptno,AVG(sal)2FROMemp3GROUPBYdeptno;DEPTNOAVG(SAL)------------------102916.6667202175301566.6667使用GROUPBY子句GROUPBY后面的列可以不出现在SELECT列中SQL>SELECTAVG(sal)2FROMemp3GROUPBYdeptno;AVG(SAL)---------2916.666721751566.6667根据多个列进行分组EMP“每个部门中,每种工作的工资总和”DEPTNOJOBSAL---------------------------10MANAGER245010PRESIDENT500010CLERK130020CLERK80020CLERK110020ANALYST300020ANALYST300020MANAGER297530SALESMAN160030MANAGER285030SALESMAN125030CLERK95030SALESMAN150030SALESMAN1250JOBSUM(SAL)------------------CLERK1300MANAGER2450PRESIDENT5000ANALYST6000CLERK1900MANAGER2975CLERK950MANAGER2850SALESMAN5600DEPTNO--------101010202020303030在多个列上使用GROUPBY子句SQL>SELECTdeptno,job,sum(sal)2FROMemp3GROUPBYdeptno,job;DEPTNOJOBSUM(SAL)---------------------------10CLERK130010MANAGER245010PRESIDENT500020ANALYST600020CLERK1900...9rowsselected.分组函数的误用在SELECT语句中,任何不在聚组函数中出现的列,必须在GROUPBY子句中.SQL>SELECT deptno,COUNT(ename)2FROM emp;SELECTdeptno,COUNT(ename)*ERRORatline1:ORA-00937:notasingle-groupgroupfunction分组函数的误用不能在WHERE子句中对列做出限定.使用HAVING子句来限定分组.SQL>SELECT deptno,AVG(sal)2FROM emp3WHERE AVG(sal)>20004GROUPBY deptno;WHEREAVG(sal)>2000*ERRORatline3:ORA-00934:groupfunctionisnotallowedhere排除聚组结果组中最高薪水大于$2900的部门号”EMP500030002850DEPTNOSAL------------------1024501050001013002080020110020300020300020297530160030285030125030950301500301250DEPTNOMAX(SAL)------------------105000203000用HAVING子句排除分组结果用HAVING子句来限定分组行被分组了.使用了分组函数.符合HAVING子句条件的组将被显示出来.SELECT column,group_functionFROM table[WHERE condition][GROUPBY group_by_expression][HAVING group_condition][ORDERBY column];使用HAVING子句SQL>SELECTdeptno,max(sal)2FROMemp3GROUPBYdeptno4HAVINGmax(sal)>2900;DEPTNOMAX(SAL)------------------105000203000分组函数的嵌套使用显示最大的平均工资.SQL>SELECTmax(avg(sal))2FROMemp3GROUPBYdeptno;MAX(AVG(SAL))-------------2916.6667练习案例1.统计每个部门的平均工资,和最高工资,最低工资,并按照部门号排序SQL>selectdeptno,avg(sal)avg_sal,max(sal)max_sal,min(sal)min_salfromempgroupbydeptnoorderbydeptno;DEPTNOAVG_SALMAX_SALMIN_SAL----------------------------------------102916.6666750001300202991
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学动物医学(疫病防控)试题及答案
- 18岁高三成人礼学校成人礼成人礼相册
- 工程机械物流安全培训课件
- 工程招标培训
- 工程安全日常培训课件
- 戒烟限酒社区健康公平干预路径
- 成本管控提高医保基金使用效率的策略
- 节能配送车辆租赁合同协议
- 样品寄送预计到达时间合同
- 2026年海洋知识竞赛试题库(附含答案)
- 2025年查对制度考核考试题库(答案+解析)
- 云南省2025年普通高中学业水平合格性考试历史试题
- 骨关节疾病危害课件
- 《再见2025欢迎2026》迎新年元旦主题班会
- 猫屎咖啡介绍
- DB54T 0540-2025 区域性强降雨气象评估标准
- 2025-2026 学年三年级 道德与法治 随堂检测 试卷及答案
- 广西贵百河2025-2026学年高一上学期12月联考语文试题
- 《手术室护理实践指南(2025版)》
- 四川省2025年高职单招职业技能综合测试(中职类)汽车类试卷(含答案解析)
- 2025年虚拟数字人开发项目可行性研究报告
评论
0/150
提交评论