oracle一道简单面试题和一道深入面试题
2017-12-02 21:56
351 查看
练习使用的是Oracle提供的scott 用户中的表
–找到员工表中薪水大于本部门平均薪水的员工
–统计每年入职员工的个数
实际上已经完成了 , 但是要求我们达到以下的效果
我们先把1987竖起来,
结果如下
我们把多行变成一行,使用聚合函数,聚合函数会忽略空值
所以随便使用一个聚合函数就行,,
运行结果如下
题目还需要我们扩充一列总人数
运行结果如下
最后终极版的代码如下 ,
–找到员工表中薪水大于本部门平均薪水的员工
oracle提供的部门表,但是部门里没有平均工资,所以我们不链接它提供的表,自己查一张表出来 找出所有部门,及平均工资 select deptno, avg(sal) from emp group by deptno; 员工根据部门链接刚刚查询的表,比较工资,大于的话就打印 select * from emp e, (select deptno, avg(sal) avgSal from emp group by deptno) d where e.deptno = d.deptno --判断部门 and e.sal > d.avgSal; --判断工资
–统计每年入职员工的个数
--统计每年入职员工的个数 1.查询年 select to_char(hiredate,'yyyy') year from emp; 2.根据年分组,然后统计数量 select to_char(hiredate,'yyyy') year ,count(*) 人数 from emp group by to_char(hiredate,'yyyy');
实际上已经完成了 , 但是要求我们达到以下的效果
我们先把1987竖起来,
select case year when '1987' then 人数 end from (select to_char(hiredate, 'yyyy') year, count(*) 人数 from emp group by to_char(hiredate, 'yyyy'));
结果如下
我们把多行变成一行,使用聚合函数,聚合函数会忽略空值
所以随便使用一个聚合函数就行,,
select avg(case year when '1987' then 人数 end) year from (select to_char(hiredate, 'yyyy') year, count(*) 人数 from emp group by to_char(hiredate, 'yyyy'));
运行结果如下
题目还需要我们扩充一列总人数
select sum(人数) total, avg(case year when '1987' then 人数 end) year from (select to_char(hiredate, 'yyyy') year, count(*) 人数 from emp group by to_char(hiredate, 'yyyy'));
运行结果如下
最后终极版的代码如下 ,
select sum(人数) total, avg(case year when '1980' then 人数 end) "1980", avg(case year when '1981' then 人数 end) "1981", avg(case year when '1982' then 人数 end) "1982" , avg(case year when '1987' then 人数 end) "1987" from (select to_char(hiredate, 'yyyy') year, count(*) 人数 from emp group by to_char(hiredate, 'yyyy'));
相关文章推荐
- 简单一道排序题,考倒多少读书人!——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!
- 一道简单的面试题(数组)
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 一道简单的面试题(续)
- cocos2d-x 一道简单面试题,触摸事件的重新分发
- 一道简单的阶层面试题
- 一道简单的python面试题-购物车
- 一道看似复杂但是简单的c#面试题
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 一道简单的java面试题
- 一道简单的面试题
- 【C面试】一道简单的C语言面试题的思考——打印星阵
- 一道简单的支付宝面试题
- 一道简单而又不简单的面试题
- 今天面试笔试了一道SQL面试题,狠简单
- 简单一道排序题,考倒多少读书人!——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!
- 一道简单的IOS面试题-b
- 记一道巨简单,但是我没有答上来的Sql面试题
- 一道js面试题的深入~