1. 程式人生 > >用一條SQL語句查詢分組前三名資料

用一條SQL語句查詢分組前三名資料

表簡單表示為:

EmpNo 員工編號
EName 員工姓名
Sal   員工工資
DepNo 部門編號

表名:T   用一條SQL語句在員工表中查詢出來每個部門公司前三名的資料

select a.DepNo,a.Sal,b.Sal,c.Sal from (select distinct DepNo,Sal from T a where Sal in (select top 1 Sal from T where DepNo=a.DepNo order by Sal desc) ) a

,(select DepNo,Sal from T a where id in (select top 2 id from T where DepNo=a.DepNo order by Sal desc) and id not in (select top 1 id from T where DepNo=a.DepNo order by Sal desc) ) b

,(select DepNo,Sal from T a where id in (select top 3 id from T where DepNo=a.DepNo order by Sal desc) and id not in (select top 2 id from T where DepNo=a.DepNo order by Sal desc) ) c

where a.DepNo=b.DepNo and a.DepNo=c.DepNo order by a.DepNo