博客
关于我
《Oracle总结 04》--较为复杂的业务查询
阅读量:221 次
发布时间:2019-02-28

本文共 3703 字,大约阅读时间需要 12 分钟。

以下是优化后的内容:

查看与CLARK相同职位的员工

查询:select ename,job from emp_xiangyoulu where job=(select job from emp_xiangyoulu where ename='CLARK')

说明:通过在emp_xiangyoulu表中查找与职位为CLARK的员工信息。

查看低于公司平均工资的员工

查询:select ename,sal from emp_xiangyoulu where sal<(select avg(sal) from emp_xiangyoulu)

说明:获取薪资低于公司平均薪资的员工名单。

查看与ALLEN同部门的员工

查询:select ename,deptno from emp_xiangyoulu where deptno=(select deptno from emp_xiangyoulu where ename='ALLEN')

说明:查找同部门(ALLEN所在部门)的人员信息。

查看平均工资低于20号部门平均工资的部门

查询:

select avg(sal),deptno from emp_xiangyoulu group by deptno having avg(sal)<(select avg(sal) from emp_xiangyoulu where deptno=20);select deptno,avg(sal) from emp_xiangyoulu group by deptno having avg(sal)<(select avg(sal) from emp_xiangyoulu where deptno=20);

说明:首先查找20号部门的平均薪资,然后找出薪资低于该平均薪资的部门,并显示这些部门的薪资和编号。

查看低于自己所在部门平均工资的员工

查询:

select e.ename,e.sal from emp_xiangyoulu e join(select avg(sal) avg_sal,deptno from emp_xiangyoulu group by deptno) mon e.deptno=m.deptno where e.sal

说明:通过自连接,获取各部门中薪资低于部门平均薪资的员工名单。

查看公司工资排名的第2-5名

查询:

select * from emp_xiangyoulu order by sal desc;select rn,e.* from (select ename,sal,deptno from emp_xiangyoulu order by sal desc) ewhere rn between 2 and 5;select * from (select ename,sal,deptno from emp_xiangyoulu order by sal desc)where rownum<5;

说明:通过排序和行数过滤,获取工资排名第2至5名的员工信息。

查看公司工资排名的第6-10名

查询:

select * from (select ename,sal,deptno from emp_xiangyoulu order by sal desc) ewhere rn between 6 and 10;

说明:同上,获取工资排名第6至10名的员工信息。

查看公司各部门薪资排名前两名的员工信息

查询:

select * from (select ename,sal,deptno,row_number() over (partition by deptno order by sal desc) rnfrom emp_xiangyoulu) ewhere e.rn<3;

说明:通过窗口函数,按部门和薪资排序,获取各部门薪资排名前两名的员工信息。

查看CLERK职位的人数和其他职位的总人数

查询:

select count(job) from emp_xiangyoulu where job='CLERK';select count(1),decode(job,'CLERK','职员','其他职位') de from emp_xiangyoulugroup by decode(job,'CLERK','职员','其他职位');

说明:分别统计CLERK职位的人数和其他职位的总人数。

查看10号、20号部门以及其余部门的人数

查询:

select count(1),decode(deptno,10,'10号部门',20,'20号部门','别的部门') de from emp_xiangyoulugroup by decode(deptno,10,'10号部门',20,'20号部门','别的部门');

说明:统计10号、20号部门以及其他部门的人数。

查看每个职位的平均工资排名

查询:

select job,avg(sal) a_sal from emp_xiangyoulugroup by job order by a_sal desc;

说明:按职位分组,计算并按平均工资排序,获取各职位的平均工资排名。

查看每个职位的员工工资排名

查询:

select ename,sal,job,row_number() over (partition by job order by sal desc) rnfrom emp_xiangyoulu;

说明:按职位和薪资排序,获取每个职位的员工薪资排名。

查看每个职位的工资排名(若工资一致则排名一致)

查询:

select ename,sal,job,rank() over (partition by job order by sal desc) rnfrom emp_xiangyoulu;

说明:按职位和薪资排序,工资一致时排名一致。

查看每个职位的工资排名(若工资一致则排名不跳)

查询:

select ename,sal,job,dense_rank() over (partition by job order by sal desc) rnfrom emp_xiangyoulu;

说明:按职位和薪资排序,工资一致时排名不跳。

查看同部门同职位、同职位、同部门以及所有员工的工资总和

查询:

select deptno,job,sum(sal) from emp_xiangyoulugroup by deptno,job;select deptno,job,sum(sal) from emp_xiangyoulugroup by rollup(deptno,job);

说明:分别按部门和职位分组,获取工资总和。

查看同部门同职位、同职位、同部门以及所有员工的工资总和

查询:

select deptno,job,sum(sal) from emp_xiangyoulugroup by cube(deptno,job);

说明:按部门和职位三级分组,获取工资总和。

查看同部门同职位和同职位的员工工资总和

查询:

select deptno,job,sum(sal) from emp_xiangyoulugroup by deptno,job;

说明:按部门和职位分组,获取工资总和。

查看公司最高工资的员工名字及所在部门名称

查询:

select e.ename,d.dname from emp_xiangyoulu eleft outer join dept_xiangyoulu d on e.deptno=d.deptnowhere e.sal=(select max(sal) from emp_xiangyoulu);

说明:通过左连接,获取最高薪资员工的姓名和部门名称。

查看每个部门的最高工资员工名字

查询:

select e.ename,e.sal,e.deptno from emp_xiangyoulu e join(select max(sal) max_sal,deptno from emp_xiangyoulu group by deptno)don e.deptno=d.deptno and e.sal=d.max_sal;

说明:通过自连接,获取每个部门的最高薪资员工信息。

查看有下属的员工信息

查询:

select distinct m.* from emp_xiangyoulu e join emp_xiangyoulu m on e.mgr=m.empno;select * from emp_xiangyoulu where empno in(select m.empno from emp_xiangyoulu e join emp_xiangyoulu m on e.mgr=m.empno);

说明:分别通过自连接和子查询,获取具有下属员工的主管信息。

转载地址:http://rgnp.baihongyu.com/

你可能感兴趣的文章
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>
Python和黑客技术的渊源
查看>>
Python和RF编写接口自动化
查看>>
Python和RF编写web自动化
查看>>
python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
查看>>
python和java哪个更值得学——来自知乎高赞回答
查看>>
python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
查看>>
python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
查看>>
Python命名中尾随下划线有什么好处?
查看>>
Python启动脚本
查看>>
Python听写汇总结果
查看>>
python吊打Excel?屁!那是你不会用!
查看>>
Python合并两张图片 | 先叠透明度再合并 (附Demo)
查看>>