oracle面试题整理二(10级学员 乔宇整理)

转载 2012年03月22日 20:22:59

oracle面试题整理二(10级学员 乔宇整理)

1.查询工资最高的3 名员工信息

select * from (select * from emp order by sal desc) where rownum <= 3;

分析我们先按照这个表中的工资降序排列,然后使用伪列也就是这个rownum来取前三个

2. 按工资进行排名,排名从1 开始,工资相同排名相同(如果两人并列第1 则没有第2 名,从第

三名继续排)

     select rank() over(order by sal) from emp;

分析,其中用到一个rank() over的函数,自己在网上查一下就知道了,很简单的!

3. 求入职日期相同的(年月日相同)的员工

select * from emp e where (select count(*) from emp where e.hiredate=hiredate)>1;

分析,就是按照出生日期分组,然后按里面有一个重复的,如果大于1,也就是说有重复的那么我们就查出来

4. 查询每个部门的最高工资

select deptno, max(sal) maxsal from emp group by deptno order by deptno;

分析这个没有什么要说的了,只要会分组就会了

5. 查询每个部门,每种职位的最高工资

select deptno, job, max(sal) from emp group by deptno, job order by deptno, job;

分析这个和18一样的了

6. 查询每个员工的信息及工资级别(用到表Salgrade)

select * from salgrade;

select e.*, sg.grade from emp e, salgrade sg where sal between losal and hisal;

 

这个题目就是考察你的基础呢?呵呵很简单的

7. 查询工资最高的第6-10 名员工

select * from (

select e.*,rownum rn from

(select * from emp order by sal desc) e

where rownum <=10)

where rn > 5;

这个题目很有意思的啊,好好的分析一下

我们首先查询里面的 select * from emp order by sal desc 就是按照降序查询,然后查出来伪列小于10的所有记录,然后我们在查询一次再找出记录大于五的,我们就知道了.

8. 查询各部门工资最高的员工信息

select * from emp e where e.sal = (select max(sal) from emp where (deptno = e.deptno));

首先查出来每个部分工资最高的然后根据序号对应得出各个部门的工资最高的员工信息

9. 查询每个部门工资最高的前2 名员工

select * from (

select rank() over (partition by deptno order by sal desc) rank, e.* from emp e

) where rank < 3;

这里解释一下,我们先用rank() over这个函数按照部门分组其中的工资降序,然后找到每个部门前两个就是了

10. 查询出有3 个以上下属的员工信息

select * from emp e where

(select count(*) from emp where e.empno = mgr) > 2;

分析,我们先找出来所有下属,然后用count函数统计每个下属的个数,然后看大于2的即可

11. 查询所有大于本部门平均工资的员工信息()

select * from emp e where sal >

(select avg(sal) from emp where (deptno = e.deptno))

order by deptno;

 

分析,先查出来每个部门的平均工资,然后根据部门相等,对应的写上即可

12. 查询平均工资最高的部门信息

select d.*, avgsal from dept d, (select avg(sal) avgsal, deptno from emp group by deptno) se

where avgsal = (select max(avg(sal)) from emp group by deptno) and d.deptno = se.deptno;

分析:

步骤1:求每个部门的平均工资:

select avg(sal) avgsal, deptno from emp group by deptno;

步骤2:求最高的平均工资:

select max(avg(sal)) from emp group by deptno;

步骤3:求平均工资最高的部门信息,连接步骤1 产生的临时表与真实表dept:

select d.*, avgsal from dept d, (select avg(sal) avgsal, deptno from emp group by deptno) se

where avgsal = (select max(avg(sal)) from emp group by deptno) and d.deptno = se.deptno;

13. 查询大于各部门总工资的平均值的部门信息

select d.*,sumsal from dept d, (select sum(sal) sumsal, deptno from emp group by deptno) se

where sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = d.deptno;

分析:

步骤1:求每个部门总工资

select sum(sal) sumsal, deptno from emp group by deptno;

步骤2:求每总工资平均值

select avg(sum(sal)) from emp group by deptno;

步骤3:求大于总工资平均值的部门信息,连接步骤1 产生的临时表与真实表dept:

select d.*,sumsal from dept d, (select sum(sal) sumsal, deptno from emp group by deptno) se

where sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = d.deptno;

14. 查询大于各部门总工资的平均值的部门下的员工信息(考察知识点:子查询,组函数,连接

查询)

select e.*,sumsal from emp e, (select sum(sal) sumsal, deptno from emp group by deptno) se

where sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = e.deptno;

 

这个题目呢,我们分析的时候是这样的,我们查找出来每个部门的总工资的平均工资,然后再查找出来每个部门的总工资,比较一下,然后根据部门号相等,就能算出来了

15. 查询没有员工的部门信息

select d.* from dept d left join emp e on (e.deptno = d.deptno) where empno is null;

分析,这个部门充分的利用了左连接的特点,自己分析一下即可.

 

如有质疑发送问题到qiaoshemei@163.com

相关文章推荐

oracle面试题整理二(10级学员 乔宇整理)

Oracle面试题整理二(10级学员 乔宇整理) 1.查询工资最高的3 名员工信息 select * from (select * from emp order by sal desc) ...

Oracle常见的面试题四(10级学员 庞丽整理)

Oracle常见的面试题: 题目:现有STUDENT(学生),COURSE(课程),SC(成绩)表,完成以下需求。(建表语句在emp.sql中,综合考察) (1)       查询选修课程为w...

Oracle常见面试题整理一(10级学员 郞志整理)

Oracle常见面试题整理 01  .查询各个部门的平均工资 SQL> select deptno,avg(nvl(sal,0)) from emp group by deptno; 02....

JqueryUI插件---对话框的使用(10级学员 乔宇课堂总结)

Jquery 中的对话框的设置以及使用          对话框:首先,我们知道我们这个jquery中的对话框,我们必须使用jquery的js和css,那么我们必须引入必须的js和css了.   ...

ORCL数据字典(10级学员 张家玮整理)

ORCL数据字典  ORACLE数据字典是ORACLE数据库的重要组成部分,它提供了诸如数据库结构、数据库对象空间分配和数据库用户等等有关数据库的信息。本文试图从数据库管理系统的若干基本概念出发,具...

oracle其他数据对象 --- 视图(10级学员 韩晓爽课堂总结)

oracle其他数据对象 --- 视图 一 介绍: 1.什么是视图:     视图是从一个表或多个表中导出的虚表,它与常规表不同之处在于它并不存储数据,它只是在一个存储的查询中定义.视图同真实表...

oracle集合运算_10级 学员 马林 课堂总结

集合运算 10级 学员 马林 课堂总结 集合操作符 1. UNION/UNION ALL 并集 UNION运算符返回两个集合去掉重复元素后的所有记录 我们以查询姓名中含有A或者M的人的列...

毕业学员面试题汇总

  • 2015-11-18 21:59
  • 336KB
  • 下载

Oracl中PL/SQL编程(10级学员 张帅鹏课堂总结)

Oracl中PL/SQL编程 概述: PL/SQL是oracle的专用语言,它对标准的SQL语言的扩展.SQL语句可以嵌套在PL/SQL语言中,并结合处理语句。举例,一般在银行系统中,都是事先写好的...

jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)(10级学员 林常禹总结)

jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)     使用jQuery ui首先需要引入jQuery类库,jQuery ui js脚...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)