版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用分组函数来对数据进行聚集工程目标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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师审计中会计估计审计的风险评估程序
- 2026四川成都市新津区外国语实验小学校面向社会招聘教师18人备考题库含答案详解(黄金题型)
- 2026广西柳州融安县长安镇卫生院乡村医生招聘2人备考题库附答案详解(研优卷)
- 房地产企业账务处理实操案例(含收入核算)
- 2206江西鹰潭市邮政分公司现面向社会招聘合同用工备考题库附参考答案详解(精练)
- 2026扬州平山堂茶业发展有限公司招聘茶饮店劳务派遣人员2人备考题库及答案详解【典优】
- 2026山东济南市第一人民医院招聘卫生高级人才和博士(控制总量)18人备考题库及答案详解【历年真题】
- 2026山东济南市第五人民医院招聘卫生高级人才和博士(控制总量)8人备考题库及答案详解【典优】
- 2026新疆喀什昆仑建设有限公司招聘3人备考题库及参考答案详解(综合卷)
- 2026广东深圳高级中学集团招聘23人备考题库及答案详解【易错题】
- 四川省广元市高2026届第二次高考适应性检测数学+答案
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 2026年江西赣州市高三一模高考数学试卷试题(含答案详解)
- 企业管理 华为会议接待全流程手册SOP
- 员工宿舍安全卫生检查
- 福建省莆田市2022-2023学年六年级下学期期末数学试卷
- 劳务派遣劳务外包服务方案(技术方案)
- 2023版全媒体运营师职业标准
- 护理查房早期人工流产的护理查房
- 《等腰三角形的判定与反证法》优课一等奖课件
评论
0/150
提交评论