oracle练习4
来源:互联网 发布:淘宝开通花呗要求什么 编辑:程序博客网 时间:2024/06/16 03:46
1. 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。(经典的两个表连接)
select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and d.dname=’SALES’;
2. 列出薪金高于公司平均薪金的所有员工。(反复查自己)
select ename,sal from emp where sal>(select avg(sal) from emp);
3. 列出与“SCOTT”从事相同工作的所有员工。(排除自己)
select ename,job from emp where ename!=’SCOTT’ and job=(select job from emp where ename=’SCOTT’);
4. 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。(max的用法)
select ename,sal from emp where sal>(select max(sal) from emp where deptno=30);
5. 列出在每个部门工作的员工数量、平均工资和平均服务期限。
select deptno as “部门编号”,count(empno) as “员工数量”,round(avg(sal),2) “平均工资”,trunc(avg(months_between(sysdate,hiredate))) as “服务期限/月” from emp group by deptno;
6. 列出所有员工的姓名、部门名称和工资.
select e.ename,d.dname,e.sal from emp e,dept d where e.deptno=d.deptno;
7. 列出所有部门的详细信息和部门人数。
select d.deptno,d.dname,d.loc,count(e.empno) as “部门人数” from dept d,emp e where d.deptno=e.deptno(+) group by d.deptno,d.dname,d.loc;
8. 找出所有的普通员工
select * from emp where empno not in (Select mgr from emp where mgr is not null);
9. 求部门中哪些人的薪水最高
select ename,sal from emp where sal in(select max(sal) from emp group by deptno);
10. 求部门平均薪水的等级
select t.name as “部门名称”,round(t.avgsal,2) as “部门平均薪水”,s.grade as “等级”
from (select avg(e.sal) as avgsal,d.dname as name from emp e,dept d where e.deptno=d.deptno group by d.dname) t,salgrade s
where round(t.avgsal,2) between losal and hisal;
11. 雇员中哪些人是经理人
select ename from emp where empno in (select distinct mgr from emp);
12. 不准用组函数,求薪水的最高值
select ename,sal from (select * from emp order by sal desc) where rownum=1;
13. 求平均薪水最高的部门的部门编号
select t.deptno as “部门编号”,t.sal as “部门最高平均薪水” from
(select d.deptno as deptno ,round(avg(e.sal),2) as sal
from dept d,emp e
where d.deptno=e.deptno
group by d.deptno order by sal desc) t
where rownum=1;
14. 求平均薪水最高的部门的部门名字
select t.dname as “部门名称”,t.sal as “部门最高平均薪水” from
(select d.dname as dname,round(avg(e.sal),2) as sal
from dept d,emp e
where d.deptno=e.deptno
group by d.dname order by sal desc) t
where rownum=1;
15. 求比普通员工的最高薪水还要高的经理人名称
select ename,sal from emp where sal>(select max(sal) from emp where job not in (‘MANAGER’,’PRESIDENT’,’ANALYST’)) and
job in (‘MANAGER’,’PRESIDENT’,’ANALYST’);
- oracle练习4
- oracle 练习
- Oracle 练习
- oracle练习
- oracle 练习
- Oracle 练习
- Oracle练习
- Oracle 练习
- Oracle练习
- oracle练习
- Oracle练习
- Oracle练习
- oracle 练习
- Oracle 练习
- oracle练习
- oracle练习4-列的别名
- oracle经典查询练手-练习4
- oracle基础知识,oracle sql练习
- 657. Judge Route Circle
- Java关键字transient和volatile
- 内连接、左外连接、右外连接、交叉连接及其区别
- IOS AppStore内付费教程
- 开发中使用过的工具类链接
- oracle练习4
- ShaderLab 法线贴图(凹凸材质)
- 最多约数问题
- 在路上- 一年回望
- Oracle 数据类型
- 解读The Python Tutorial(二)
- HTTP协议
- 使用存储过程备份与还原数据库
- 运营商级NAT引起的FTP匿名下载文件中断问题