日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

找出那些工资高于他们所在部门的平均工资的员工

發布時間:2024/1/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 找出那些工资高于他们所在部门的平均工资的员工 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/zhangzhu/archive/2012/05/10/2494978.html

一個SQL實現薪水大于所在部門平均薪水的員工

id? ? empName? ? DeptId? ? empSalary

1? ?? ?? ? 張三? ?? ?? ?? ???1? ?? ?? ?? ?2500
2? ?? ?? ? 李四? ?? ?? ?? ???1? ?? ?? ?? ?2400
3? ?? ?? ? 王二? ?? ?? ?? ???2? ?? ?? ?? ?2600
4? ?? ?? ? 麻子? ?? ?? ?? ???2? ?? ?? ?? ?2500

select * from emp e1 where e1.empSalary > (select avg(empSalary) from emp e2 where e1.DeptId = e2.DeptId)

查詢結果:
1? ?? ?? ? 張三? ?? ?? ?? ???1? ?? ?? ?? ?2500
3? ?? ?? ? 王二? ?? ?? ?? ???2? ?? ?? ?? ?2600

?

補充:

今天在跟同事交流的時候,發現昨天少考慮了一樣東西,性能。
這個問題還有一種解決方式,SQL如下:

select??e1.*?
from emp e1 ,(select DeptId,avg(empSalary) as deptSalary from emp group by DeptId) as e2?
where e1.DeptId = e2.DeptId and e1.empSalary > e2.deptSalary(測試通過)

現在來分析這兩種寫法的差別在哪。第一種寫法看似更簡捷,語句少了不少,第二種似乎更麻煩。其實不然,第一種寫法是比第二種效率更低,為什么。原因就在于 emp中員工每次比較薪水時,都會計算一次該員工所屬部門的平均薪水,這樣emp中有4條記錄,就會計算4次。而第二種方式只計算一次部門的評價薪水。如 果表中數據量比較大,對性能的影響會更明顯,所以第二種方式更佳。

工欲善其事,必先利其器。



總結

以上是生活随笔為你收集整理的找出那些工资高于他们所在部门的平均工资的员工的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。