[Oracle]高效的SQL語句之分析函式(三)
[Oracle]高效的SQL語句之分析函式(三)--row_number() /rank()/dense_rank()
有些時候我們希望得到指定資料中的前n列,示例如下:
得到每個部門薪水最高的三個僱員:
先建立示例表
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
先看一下row_number() /rank()/dense_rank()三個函式之間的區別
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
結果如下:
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
取每個部門的薪水前三位僱員:
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
結果如下:
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
如果想輸出成deptno sal1 sal2 sal3這種型別的格式
步驟一(decode):
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
結果如下:
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
步驟二(使用聚合函式去除null,得到最終結果):
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
結果如下:
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
![](https://i.iter01.com/images/4a704ceebc1729f9ebf73b1f61e4473fb2295750fefd516144d8b1e3d3f8af4e.gif)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219982/viewspace-513636/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【SQL】Oracle sql語句 minus函式執行效率與join對比SQLOracle函式
- Oracle基本SQL語句OracleSQL
- SQL查詢語句 (Oracle)SQLOracle
- Oracle SQL精妙SQL語句講解OracleSQL
- 【SQL】Oracle 表新增列提高效率語句參考SQLOracle
- oracle v$sqlare 分析SQL語句使用資源情況OracleSQL
- 列出oracle dbtime得sql語句OracleSQL
- Oracle分析函式之開窗函式over()詳解Oracle函式
- 後臺執行SQL語句(oracle)SQLOracle
- SQL視窗分析函式使用詳解系列三之偏移量類視窗函式SQL函式
- [20201105]再分析sql語句.txtSQL
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- java連線oracle執行sql語句JavaOracleSQL
- 18 與Oracle Data Guard 相關的SQL語句OracleSQL
- MySQL之SQL語句優化MySql優化
- 03 shell程式設計之case語句與函式程式設計函式
- Oracle分析函式與視窗函式Oracle函式
- sql語句執行緩慢分析SQL
- [20211221]分析sql語句遇到的問題.txtSQL
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- ORACLE中sql語句----運算子的優先順序OracleSQL
- oracle 21c 新特性之 CHECKSUM 分析函式Oracle函式
- MySQL指南之SQL語句基礎MySql
- 【轉】LINQ to SQL語句(1)之WhereSQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- SQL語句SQL
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- JavaScript的流程控制語句以及函式JavaScript函式
- SQL語句IN的用法SQL
- Dart語法篇之集合操作符函式與原始碼分析(三)Dart函式原始碼
- 蘊含式(包含EXISTS語句的分析)
- SQL語言基礎(函式)SQL函式
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- 【TUNE_ORACLE】查出所有有“select *”語句的SQL參考OracleSQL
- oracle資料庫檢視鎖表的sql語句整理Oracle資料庫SQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- Oracle分析函式之LEAD和LAG實際應用Oracle函式
- 06_SHELL程式設計之CASE語句+函式+正則程式設計函式
- ORACLE分析函式手冊(轉)Oracle函式