黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Oracle教程
Oracle練習(xí)題

Oracle經(jīng)典練習(xí)題

1、取得每個(gè)部門最高薪水的人員名稱

第一步:取得每個(gè)部門的最高薪水

select deptno, max(sal) maxSal from emp group by deptno

第二步:獲取結(jié)果

select ename, sal, e.deptno from emp e join ( select deptno, max(sal) maxSal from emp group bydeptno) t on e.deptno = t.deptno and e.sal = t.maxSal

2、哪些人的薪水在部門的平均薪水之上

第一步:獲取每個(gè)部門的平均薪水

select deptno, avg(sal) avgSal from emp group by deptno

第二步:獲取結(jié)果

select ename, sal from emp e join (select deptno, avg(sal) avgSal from emp group by deptno) t on e.deptno = t.deptno and e.sal > t.avgSal

3、取得部門中(所有人的)平均的薪水等級,如下:

第一步:獲取每個(gè)員工的薪水等級

select deptno, grade from emp e join salgrade g on e.sal between g.LOSAL and g.HISAL

第二步:將第一步的結(jié)果用部門編號進(jìn)行分組,得到結(jié)果

select deptno, avg(grade) from (select deptno, grade from emp e join salgrade g on e.sal between g.LOSAL and g.HISAL) group by deptno

4、不準(zhǔn)用組函數(shù)(Max),取得最高薪水(給出兩種解決方案)

第一種(rownum):

● 將員工薪水降序排列

select * from emp order by sal desc

● 取得查詢結(jié)果的第一條數(shù)據(jù)

select sal from ( select * from emp order by sal desc) where rownum = 1

第二種(自關(guān)聯(lián))

● 將Emp表當(dāng)成2張表來用,進(jìn)行比較,得到最大值以外的值。

select distinct e.sal from emp e join emp t on e.sal < t.sal

● 獲取最大薪水

select sal from emp where sal not in (select distinct e.sal from emp e join emp t on e.sal < t.sal)

5、取得平均薪水最高的部門的部門編號(至少給出兩種解決方案)

第一種:

select * from (select deptno from emp group by deptno order by avg(sal) desc) where rownum = 1

第二種:

● 獲取每個(gè)部門的平均薪水

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

● 取得查詢結(jié)果的最高數(shù)據(jù)

select max(avgSal) from (select deptno, avg(sal) avgSal from emp group by deptno)

● 取得結(jié)果

select deptno from (select deptno, avg(sal) avgSal from emp group by deptno) s join (select max (avgSal) maxAvgSal from (select deptno, avg(sal) avgSal from emp group by deptno)) t on s.avgSal = t.maxAvgSal

第三種(聚合函數(shù)可以嵌套使用)

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

6、取得平均薪水最高的部門的部門名稱

● 參考上一題的結(jié)果(取得部門編號)

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

● 取得部門名稱

Select dname from dept where deptno = (select deptno from emp group by deptno having avg(sal) = (select max(avg(sal)) from emp group by deptno))

7、求平均薪水的等級最低的部門的部門名稱

第一步:取得每個(gè)部門的平均薪水

select deptno, avg(sal) avgSal from emp group by deptno

第二步:獲取每個(gè)部門的平均 薪水等級

select deptno, avgSal, grade from salgrade g join ( select deptno, avg(sal) avgSal from emp group by deptno ) t on t.avgSal between g.losal and g.hisal

第三步:取得最低的等級

select min(grade) from (select deptno, avgSal, grade from salgrade g join ( select deptno, avg(sal) avgSal from emp group by deptno ) t on t.avgSal between g.losal and g.hisal)

第四步:獲取部門編號

Select deptno from (select deptno, avgSal, grade from salgrade g join ( select deptno, avg(sal) avgSal from emp group by deptno ) t on t.avgSal between g.losal and g.hisal) where grade = (select min(grade) from (select deptno, avgSal, grade from salgrade g join ( select deptno, avg(sal) avgSal from emp group by deptno ) t on t.avgSal between g.losal and g.hisal))

第五步:取得部門名稱

Select dname from dept where deptno in (Select deptno from (select deptno, avgSal, grade from salgrade g join ( select deptno, avg(sal) avgSal from emp group by deptno ) t on t.avgSal between g.losal and g.hisal) where grade = (select min(grade) from (select deptno, avgSal, grade from salgrade g join ( select deptno, avg(sal) avgSal from emp group by deptno ) t on t.avgSal between g.losal and g.hisal)))

8、取得比普通員工(員工代碼沒有在mgr字段上出現(xiàn)的)的最高薪水還要高的經(jīng)理人姓名

第一步:取得所有經(jīng)理的員工編號

select distinct mgr from emp where mgr is not null

第二步:取得普通員工的最高薪水

Select max(sal) maxSal from emp where empno not in (select distinct mgr from emp where mgr is not null )

第三步:獲取結(jié)果

select ename , sal from emp where empno in (select distinct mgr from emp where mgr is not null) and sal > (Select max(sal) maxSal from emp where empno not in (select distinct mgr from emp where mgr is not null ))

9、取得薪水最高的前五名員工

select *
from 
(
 select rownum r, t.* 
 from 
  (
    Select ename, sal from emp order by sal desc
  )  t  
  where rownum <=5 
)where r>0

10、取得薪水最高的第六到第十名員工

select *
from 
(
 select rownum r, t.* 
 from 
  (
    Select ename, sal from emp order by sal desc
  )  t  
  where rownum <=10 
)where r>5

11、取得最后入職的5名員工

Select * from ( select ename, hiredate from emp order by hiredate desc ) where rownum <= 5 

全部教程
主站蜘蛛池模板: 国产视频一区二区 | 国产一级一国产一级毛片 | 日日摸日日碰夜夜爽视频网站 | 欧美精品一区二区三区在线播放 | 欧美日韩国产另类在线观看 | 一区二区免费视频观看 | 国产成人精品高清在线 | 久久三级影视 | 三级三级三级网站网址 | 成人毛片免费在线观看 | 天天干天天射天天舔 | 日韩一级免费视频 | 中文字幕日韩三级 | 亚洲色图第四页 | 在线观看一区二区三区视频 | 国产成人黄网在线免 | 免费一级在线观看 | 日韩在线理伦片免费观看 | 99干99| 男人女人真曰批视频大全免费观看 | 黄色三级视频 | 国产噜噜噜精品免费 | 久草色视频| 国产精品久久久久影院色老大 | 成a人片在线观看 | 国产一区二区三区精品视频 | 午夜国产在线观看 | yy3341殇情影院理论片 | 亚洲精品无码不卡在线播放he | 久久综合九色综合网站 | 曰本三级香港三级三级人 | 成人18免费视频 | 我爱52avαv永久网站 | 亚洲精品自在线拍 | 亚洲欧美日韩在线2020 | 黄色羞羞视频 | 黄色片免费在线播放 | 一级欧美一级日韩 | 香蕉在线精品亚洲第一区 | 亚洲成人播放 | 精品国产乱码一区二区三区 |