1. 程式人生 > >列出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序(用sql語句來表達)。

列出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序(用sql語句來表達)。

AR 思路 進行 info family order size table ID

查詢出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序(用sql語句來表達)

1.創建的表格

技術分享圖片

2.思路:

(1)首先查詢各個部門的平均工資

1 select deptid ,avg(salary) as avg_salary from Employee group by deptid; 

-----> 查詢結果:

技術分享圖片

(2)利用聯合查詢的思想進行查詢:select * from table1,table2 where table1.name=table2.name

即把Employee表與上表查詢出的結果進行聯合查詢,找出所有工資大於平均工資的記錄。

1 select table1.* from Employee as table1,
2 (select deptid ,avg(salary) as avg_salary from Employee group by deptid) as table2
3 where table1.deptid=table2.deptid and table1.salary>table2.avg_salary; 

---->查詢結果:

技術分享圖片

(3)查詢出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序

1 select table1.deptid,count
(*) from Employee as table1, 2 (select deptid ,avg(salary) as avg_salary from Employee group by deptid) as table2 3 where table1.deptid=table2.deptid and table1.salary>table2.avg_salary 4 group by table1.deptid order by table1.deptid;

----->查詢結果:

技術分享圖片

列出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序(用sql語句來表達)。