Oracle基础练习题及答案(聚合函数)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle基础练习题及答案(聚合函数)
分组函数
1.查询公司员工工资的最大值,最小值,平均值,总和
select max(sal),min(sal),avg(sal),sum(sal) from emp;
2.查询各job的员工工资的最大值,最小值,平均值,总和
select job,max(sal),min(sal),avg(sal),sum(sal) from emp group by job;
3.选择具有各个job的员工人数(提示:对job进行分组)
select job,count(ename) from emp group by job;
4.查询员工最高工资和最低工资的差距(DIFFERENCE)
select max(sal)-min(sal) from emp;
5.查询各个管理者手下员工的最低工资,其中最低工资不能低于
800,没有管理者的员工不计算在内
select a.mgr,min(a.sal) from emp a,emp b where
a.mgr=
b.empno group by a.mgr;
6.查询所有部门的名字dname,所在位置loc,员工数量和平均工资select dname,loc,count(ename),avg(sal) from emp a,dept b where a.deptno(+)=b.deptno group by dname,loc;
7.查询公司的人数,以及在1980-1987年之间,每年雇用的人数,
结果类似下面的格式
total 1980 1981 1982 1987
30 3 4 6 7
select distinct
(select count(ename) from emp) "total",
(select count(ename) from emp where hiredate>=to_date('19800101','yyyymmdd') and hiredate<="" bdsfid="82" p="">
(select count(ename) from emp where hiredate>=to_date('19810101','yyyymmdd') and hiredate<=""
bdsfid="84" p="">
(select count(ename) from emp where hiredate>=to_date('19820101','yyyymmdd') and hiredate<="" bdsfid="86" p="">
(select count(ename) from emp where hiredate>=to_date('19870101','yyyymmdd') and hiredate<="" bdsfid="88" p="">
from emp;。