收藏 分销(赏)

SQL数据分组查询.ppt

上传人:s4****5z 文档编号:13965421 上传时间:2026-05-18 格式:PPT 页数:18 大小:554KB 下载积分:10 金币
下载 相关 举报
SQL数据分组查询.ppt_第1页
第1页 / 共18页
SQL数据分组查询.ppt_第2页
第2页 / 共18页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,Oracle,数据库原理与应用,18 五月 2026,计算机(软件)学院,Oracle,数据库原理与应用,第,5,讲,数据分组查询,主讲:郭永洪,E-mail:yh_guo,任务,任务,1,:使用分组函数,任务,2,:使用,group by,和,having,子句,教学目标,1,、学会使用,SQL,分组函数,2,、学会使用,group by,和,having,子句,知识目标:,能力目标:,1,、,SQL,分组函数,2,、,SQL,查询,group by,和,having,子句,任务,1,:使用分组函数,任务,1-1,:使用,Max,、,Min,、,Avg,和,Sum,函数,任务,1-2,:使用,count,函数,任务,1,:使用分组函数,分组函数用于统计表的数据,作用于多行,并返回一个统计结果。分组函数又称多行函数。,使用范围:,(,1,)分组函数只能出现在选择列、,order by,子句、,having,子句中,(,2,)当使用分组函数时,会忽略,null,行,(,3,)如果在选择列表中既包含分组函数,也包含了其它列和表达式,那么这些列和表达式必须出现在,group by,子句中。,(,4,)当使用分组函数时,可以在函数中指定,all,和,distinct,选项。其中,all,是默认选项,该选项表示统计所有行数据(包含重复值);如果指定,distinct,,则只会统计不同行值。,任务,1,:使用分组函数,任务,1-1,:使用,Max,、,Min,、,Avg,和,Sum,函数,例:查询雇员的最高工资、最低工资、平均工资以及工资总额。,SQL select max(sal),min(sal),avg(sal),sum(sal)from emp;,Max,函数:取列或表达式最大值;,Min,函数:取列或表达式最小值;,Avg,函数:取得列或表达式平均值;,Sum,函数:取得列或表达式总和。,任务,1,:使用分组函数,任务,1-1,:使用,Max,、,Min,、,Avg,和,Sum,函数,练习,1,:查询从事销售工作的雇员最高工资、最低工资、平均工资以及工资总额。,练习,2,:查询部门编号为,30,的部门雇员最高工资、最低工资、平均工资以及工资总额。,练习,3,:计算能获得奖金的雇员平均奖。,练习,4,:计算公司所有雇员的平均奖。(组函数中使用,nvl,函数),任务,1,:使用分组函数,任务,1-2,:,使用,count,函数,例,1,:统计公司雇员总人数。,SQL select count(*)as,雇员总人数,from emp;,例,2,:统计,30,号部门能挣得奖金的雇员总人数,SQL select count(comm)as,能挣得奖金人数,from emp where deptno=30;,Count,函数:取得满足条件的记录总行数。,任务,1,:使用分组函数,任务,1-2,:,使用,count,函数,练习,1,:统计在,30,号部门工作的雇员人数,练习,2,:统计公司工作为,“,MANAGER,”,的雇员人数,练习,3,:统计公司工资在,1100,3000,元之间的雇员人数,任务,2,:使用,group by,和,having,子句,任务,2-1,:使用,group by,进行单列分组,任务,2-2,:使用,group by,进行多列分组,任务,2-3,:使用,having,子句限制分组显示结果,任务,2-4,:分组函数嵌套,任务,2,:使用,group by,和,having,子句,Group by,子句用于对查询结果分组统计;,having,子句用于限制分组显示结果。,任务,2,:使用,group by,和,having,子句,任务,2-1,:,使用,group by,进行单列分组,例:查询每个部门的平均工资,按部门编号升序排列,SQL select deptno,avg(sal)from emp,group by deptno,order by deptno;,练习:查询每个岗位的平均工资,按计算结果排序。,基于单列生成分组统计结果,为分组列的每个不同值分别生成统计结果,任务,2,:使用,group by,和,having,子句,任务,2-2,:,使用,group by,进行多列分组,例:查询每个部门每种岗位的最低工资、最高工资和平均工资,按部门编号排序,SQL select deptno,job,min(sal),max(sal),avg(sal),from emp,group by deptno,job,order by deptno;,基于两个或两个以上的列生成分组统计结果。,思考?上述,group by,子句中是否可以漏写,job,字段。,练习:按所在部门及从事工作分组统计雇员一年内薪水总和,按部门编号排序。,任务,2,:使用,group by,和,having,子句,任务,2-3,:使用,having,子句限制分组显示结果,Having,子句必须出现在,group by,子句后面。,例:按部门显示平均工资低于,2500,的部门号、平均工资和最高工资。,SQL select deptno as,部门编号,avg(sal)as,平均工资,max(sal)as,最高工资,from emp,group by deptno,having avg(sal)2500;,思考?上述,SQL,语句中的,having,子句是否可以用,where,子句替换。,where avg(sal)select min(avg(sal),平均工资最低值,max(avg(sal),平均工资最高值,from emp,group by deptno;,练习:按雇员从事的工作显示平均工资最低值和最高值。,软件外包(,2,)教研室,yh_guo,郭永洪,谢,谢,劳伦斯,-,埃里森,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服