想知道平均薪資,需要取出全部薪資做平均
想取出大於平均薪資的資料,每次取出單筆資料時如何判斷是否超過平均薪資?
所以必須先得知平均薪資是多少~~~
如果不想要用子查詢,可以先用變數存放事先算好的平均薪資
然後只要薪資大於該變數即可~~
不過 一個SQL就解決了變成要2個SQL來解決~~
select 人名,薪水 from 薪資表 having 薪水>avg(薪水);
這並不是查不出來,而是不是你想要的條件查出來。
所有的select,一但未指定group的情況下,都是一筆一筆處理的。
所以後面的avg(薪水)。只是平均你目前看到的一筆薪水的平均值。
等於有平均跟沒平均是一樣的意思。
因為動作原理的不同,一個是一筆一筆顯示。一個是需要全表統計處理。
並無法同時做到這樣的事。自然就會需要用另一個子查尋來處理全表統計的事後再來給一筆一筆處理。