第一部分 SQL語句練習題

1.查詢本部門大于平均工資的員工信息

SELECT *
from emp,
(SELECT AVG(sal) avg_sal,deptno
from emp
GROUP BY deptno)a
WHERE emp.sal>a.avg_sal and a.deptno=emp.deptno

第一步:先運用子查詢查詢出每個部門的平均工資,并把查詢結(jié)果當成一張表
第二步:通過部門號連接子表和主表,查詢出主表中大于子表中平均工資的員工信息

2.找出平均工資最高的部門編號

SELECT AVG(sal) avg_sal
FROM emp
GROUP BY deptno
ORDER BY avg_sal DESC
LIMIT 0,1

3.選擇姓名中有字母A和E的員工姓名where ename LIKE '%A%' OR '%E%' 表示的是一定有A,但是E可有可無

SELECT ename FROM emp where ename LIKE '%A%' OR ename LIKE'%E%'

``

4.平均薪水最高的部門編號

select deptno
from
(select avg(sal) avg_sal,deptno from emp group by deptno)
where avg_sal=
(select max(avg_sal) from
(select avg(sal) avg_sal,deptno from emp group by deptno))
//可以寫成max(avg(sal))


步驟:先找出每個部門的平均薪水,再找出平均薪水里的最大值,在找出當平均薪水等于最大值時候的部門編號
注:為什么不同時找平均薪水最大值和部門編號呢?因為最大值只有一個,而可能有多個部門具有最高平均薪水

注:如果查詢層有聚合函數(shù),最好這一次查詢不再查詢其它內(nèi)容,因為聚合函數(shù)對應(yīng)的值可能不止一個,而和聚合函數(shù)一起輸出的話,另一個查詢的值也只能有一個,導致了誤差的出現(xiàn)

5.求比普通員工最高工資高的經(jīng)理人名稱

先求普通員工最高工資,再求經(jīng)理人工資比最高工資高的

SELECT ename,sal
from emp
WHERE empno in (select mgr from emp WHERE mgr is not null) AND sal>
(SELECT max(sal)
from emp
WHERE empno not in
(select mgr from emp WHERE mgr is not null))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. select * from emp; 2. select empno, ename, job from em...
    海納百川_4d26閱讀 1,997評論 0 4
  • 5.多表查詢 多表查詢 目的:從多張表獲取數(shù)據(jù) 前提:進行連接的多張表中有共同的列 等連接 通過兩個表具有相同意義...
    喬震閱讀 1,548評論 0 0
  • 1.簡介 數(shù)據(jù)存儲有哪些方式?電子表格,紙質(zhì)文件,數(shù)據(jù)庫。 那么究竟什么是關(guān)系型數(shù)據(jù)庫? 目前對數(shù)據(jù)庫的分類主要是...
    喬震閱讀 2,023評論 0 2
  • 查詢是數(shù)據(jù)的一個重要操作。用戶發(fā)送查詢請求,經(jīng)編譯軟件變異成二進制文件供服務(wù)器查詢,后返回查詢結(jié)果集給用戶,查詢會...
    產(chǎn)品小正閱讀 1,535評論 0 2
  • 給大家講一個故事:話說在一列被封在暴風雪中的火車上發(fā)生了殺人事件,死者身中12刀,因為大雪封山,兇手就藏在火車當中...
    王二寶閱讀 672評論 1 4

友情鏈接更多精彩內(nèi)容