实验 5.docx
《实验 5.docx》由会员分享,可在线阅读,更多相关《实验 5.docx(11页珍藏版)》请在冰豆网上搜索。
实验5
沈阳师范大学科信软件学院
实验报告
实验题目:
分组函数的使用
实验时间:
姓名:
学号:
专业年级:
实验5 分组函数的使用
一、实验目的:
●掌握在SELECT语句中通过分组函数查询分析数据。
●掌握几种组函数的使用。
●掌握groupby分组查询,以及对分组结果进行条件限制的方式。
二、实验内容:
●练习如何使用分组函数
●分组查询过程中组函数的应用
●分组查询中如何对分组查询结果进行条件限制
三、实验步骤:
启动SQLPlus或SQLPlusWORKSheet,选择“开始”->“程序”->“Oracle”->“AplicationDevelopment”->“SQLPlus”命令,出现如下图所示的注册对话框:
在用户名文本框里输入scott,口令文本框里输入tiger,在主机字符文本框;一输入ORCL,单击“确定”按钮。
1.显示平均工资为>2000的工作
selectjob,avg(sal)
fromemp
groupbyjob
havingavg(sal)>2000;
2.计算工资在2000以上的各种工作的平均工资大于3000的工作
selectjob,avg(sal)
fromemp
wheresal>2000
groupbyjob
havingavg(sal)>3000;
3.找每个部门的最高和最低的工资?
selectdeptno,max(sal),min(sal)
fromemp
groupbydeptno;
4.找每个部门中每种工作的最高和最低的工资?
selectdeptno,job,max(sal),min(sal)
fromemp
groupbydeptno,job;
5.显示出工作名称(job)中包含"MAN"的员工平均工资,最高工资,最低工资及工资的和
SELECTAVG(sal),MAX(sal),MIN(sal),SUM(sal)
FROMemp
WHEREjobLIKE'%MAN%';
6.显示出20号部门的员工人数
SELECTCOUNT(*)
FROMemp
WHEREdeptno=20;
7.显示出平均工资大于2000的部门名称及平均工资
selectd.dname,avg(e.sal)
fromempe,deptd
wheree.deptno=d.deptno
groupbyd.dname
havingavg(sal)>2000;
8.显示每个部门每种工作平均工资大于2500的部门及工作
selectdeptno,job,avg(sal)
fromemp
groupbydeptno,job
havingavg(sal)>2500;
9.显示出工作名称中包含"MAN",并且平均工资大于1000的工作名称及平均工资
selectjob,avg(sal)
fromemp
wherejoblike'%MAN%'
groupbyjob
havingavg(sal)>1000;
10.显示出平均工资最高的的部门平均工资
selectmax(avg(sal))
fromemp
groupbydeptno;
--列出部门号
selectdeptno,avg(sal)
fromemp
groupbydeptno
havingavg(sal)=
(selectmax(avg(sal))fromempgroupbydeptno);
11.列出最低工资大于1500的各种工作
selectjob,min(sal)
fromemp
groupbyjob
havingmin(sal)>1500;
12.列出各部门的员工数量及平均工作年限
selectdeptno,count(*),round(avg(months_between(sysdate,hiredate)/12))
fromemp
groupbydeptno;