頁:
[1]
SQL語法-列出群組後的前幾筆
本帖最後由 ylchang5 於 2012-6-11 12:18 PM 編輯請教高手大大,如何使用SQL語法寫出以下要求?(只顯示出以下粗體字的資料)
列出每個計畫總薪水最高之三位正職員工 註:正職(Time=100)
資料表結構如下:
EMPLOYEE_PROJECT(CID, Project, Position, Time, Salary_level)
project cid salary_level=========================1 10 605001 5 320001 2 300001 3 250002 9 900002 11 780002 7 700002 19 690002 8 600002 18 456783 20 1290003 16 50003 17 30003 12 20003 13 1000
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 本帖最後由 cusoxi 於 2012-7-13 09:50 PM 編輯
以Oracle SQL的寫法,利用Rank()取得各專案下的薪資排名,再取各專案的前三名即可。
SELECT RR, PROJECT, CID, SALARY_LEVEL
FROM (SELECT Rank() OVER (PARTITION BY PROJECT ORDER BY SALARY_LEVEL Desc) RR,
PROJECT, CID, SALARY_LEVEL
FROM EMPLOYEE_PROJECT
)
WHERE RR<=3
ORDER BY PROJECT, RR
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]