2016-04-29 49 views
1

我想要一個SQL查詢來獲取每個部門Oracle查詢來獲取每個部門

Table :- sample 

Name Salary Dept 
AA  1000 Hr 
BB  7520 Store 
CC  12500 Hr 
DD  9850 Store 
EE  10250 Finance 
FF  12560 Hr 
GG  13500 Store 
HH  15680 Store 
KK  12853 Hr 
MM  17582 Finance 
NN  16852 Finance 

我用下面的查詢的前3名薪酬最高3的工資,但它不是獲取正確的結果

SELECT dept, fname,lname,sal from sample where rownum<4 group by(fname,lname,sal,desg) order by sal desc 

回答

0

嘗試group by然後where rownum < 4

SELECT dept,fname,lname,sal 
FROM sample 
GROUP BY(fname,lname,sal,desg) 
WHERE ROWNUM < 4 
ORDER BY sal DESC 
; 

還要檢查SELECTGROUP BY列作爲只顯示NAME的表格,而不是fnamelname

+0

嗨,上面的查詢還沒有獲取期望的結果使用的名稱 – suvendu

+0

HV,但不獲取所需esult – suvendu

+0

嘗試以下範X解決方案。 –

2

你需要的是解析函數row_number

select * 
from (select a.*, row_number() over (PARTITION by dept order by salary desc) as num 
     from sample a 
) 
where num < 4;