一個經典的查詢及其SQL語句
查詢所有班級中每個部門薪水前5名的員工姓名,應該怎樣寫查詢語句?
第一次遇到這個問題還是在JDZ的時候,省支撐的XY(kevin,我校友)提供的答案,非常好很精練。
後來在ITPUB上見到有人問同樣的問題,也見到一些不錯的答案。
我知道的方法一共有這麼三種:
[@more@]是根據 hr 使用者下的 employees 寫的,實現的功能類似
程式碼:
---------------------------------------------------------------------
select department_id, last_name, salary, rn
from (select e.last_name, e.salary, e.department_id,
rank() over(partition by e.department_id order by e.salary) rn
from employees e where e.department_id > '0')
where rn <= 5;
-----------------------------------------------------------------
沒用分析函式寫了一個
------------------------------------------------------------------
select b.department_id, b.salary, b.last_name
from (select department_id, min(rn) mrn
from (select department_id, salary, last_name, rownum rn
from (select e.department_id, e.salary, e.last_name
from employees e
where e.department_id > '0'
order by e.department_id, e.salary))
group by department_id) a,
(select department_id, salary, last_name, rownum rn
from (select e.department_id, e.salary, e.last_name
from employees e
where e.department_id > '0'
order by e.department_id, e.salary)) b
where a.department_id = b.department_id
and b.rn >= a.mrn
and b.rn <= a.mrn + 4;
--------------------------------------------------------------------------
kevin的答案:
select a.department_id,a.salary
from employees a
where not exists
(select 1 from employees b
where a.department_id=b.department_id
and a.salary
order by a.department_id,a.salary
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219138/viewspace-913375/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql 查詢經典語句SQL
- 記一個實用的sql查詢語句SQL
- 經典SQL語句大全SQL
- 幾個定位、查詢session的sql語句SessionSQL
- sql中as的用法和一些經典的sql語句SQL
- SQL查詢語句 (Oracle)SQLOracle
- SQL server 查詢語句SQLServer
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- oracle常用經典sql查詢OracleSQL
- 【轉】經典SQL語句大全2SQL
- 【轉】經典SQL語句大全1SQL
- 一個sql查詢語句報ORA-01722SQL
- 一句簡單的SQL查詢語句的背後...SQL
- 我常用經典SQL語句[就先寫一句吧]SQL
- SQL Server阻塞查詢語句SQLServer
- SQL查詢語句使用 (轉)SQL
- oracle常用經典SQL查詢 (轉)OracleSQL
- oracle常用經典SQL查詢(zt)OracleSQL
- 查詢效率低下的sql的語句SQL
- 一條SQL語句查詢塊分解及查詢轉換SQL
- 使用一個T-SQL語句批量查詢資料表佔用空間及其行數SQL
- Sql server中時間查詢的一個比較快的語句(轉)SQLServer
- 請教一個mysql查詢語句!!MySql
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- mysql查詢效率慢的SQL語句MySql
- 查詢執行慢的SQL語句SQL
- SQL SERVER 條件語句的查詢SQLServer
- 查詢正在執行的SQL語句SQL
- 一條 SQL 查詢語句是如何執行的?SQL
- 15個初學者必看的基礎SQL查詢語句SQL
- Oracle 查詢某個session正在執行的sql語句OracleSessionSQL
- postgresql dba常用sql查詢語句SQL
- SQL語句查詢表結構SQL
- mysql 查詢建表語句sqlMySql
- SQL查詢語句精華文章(轉)SQL
- 一個connect by查詢語句的優化優化
- 執行SQL語句查詢時出現一個SQLException異常SQLException