TOP N 查詢 SQL
【1】
總結一下:
1. TOP N 的三種語義。
M1: 某種順序下前N條記錄,重複的也算做一條 top 3 1(10) 2(10) 3(10)
M2: 把所有排序列等於第N條的記錄都計算進去,結果可能多餘N條記錄1(10) 1(10) 3(20) 3(20),但N之前的重複記錄要重複計算。這個例子中TOP 3 和 TOP 4結果一樣。
M3: 所有值相等的記錄只算作前N個順序中的一個位置,如 TOP 3 1(10) 1(10) 2(11) 2(11) 2(11) 3(20)
2. ORACLE,DB2,SQL SERVER 的新版本中都增加了OLAP函式 rank() dense_rank() row_number()
rank 名次(值) 1(10) 1(10) 3(20) 重複值的序號一樣,但要空出位置M2
dense_rank 1(10) 1(10) 2(20) 重複的只佔一個序號位置 M3
row_number() 1(10) 2(10) 3(20) 一條記錄對應一個序號 M1
詳細解釋可以參考http://www.blogjava.net/pengpenglin/archive/2008/06/26/210839.html 例子容易理解
3. 另外
SQL SERVER 中 TOP N [ WITH TIES ] 參考【1】
DB2 中 FETCH FIRST N ROWS ONLY
ORACLE 中 rownum(查詢結果出來時自然序號) rowid
ORACLE中rownum與row_number()區別:(參考別人)
row_number()和ROWNUM是看起來相似但概念完全不同的東西,
row_number()是一個分析函式(Analytic Function),它返回的是基於over()引數的行號。
rownum是oracle特別提供的一個偽列,它只作用於查詢的結果集,根據結果集輸出的先後次序給每個紀錄順次編號。
這樣答案
select a.* from(select row_number() over(order by order_col) r,* from stb )a where a.r20;
如果不排序,用rownum top n fetch first 加上except應該也可以。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/38085/viewspace-1013225/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL 如何查詢連續上漲 N 次的記錄SQL
- SQL查詢的:子查詢和多表查詢SQL
- 原生SQL查詢SQL
- SQL--查詢SQL
- SQL 聚合查詢SQL
- SQL語言_多表查詢和TOP限制結果集_PAGE3SQL
- SQL查詢總結SQL
- SQL連線查詢SQL
- SQL高階查詢SQL
- sql常用查詢命令SQL
- SQL 複雜查詢SQL
- Laravel 5 關聯查詢 —— N 對 N 簡單例子Laravel單例
- HighgoDB查詢慢SQL和阻塞SQLGoSQL
- jQuery查詢第n個li元素jQuery
- pid,sid相互查詢,根據PID查詢sqlSQL
- “超越” SQL 的資料查詢語言“新秀”Top8:GraphQL、PRQL、WebAssembly上榜SQLWeb
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- SQL 唯一查詢SQL
- 優化sql查詢速度優化SQL
- SQL查詢語句 (Oracle)SQLOracle
- SQL慢查詢排查思路SQL
- sql 模糊查詢問題SQL
- sql查詢更新update selectSQL
- Sql介紹 與 Sql基礎查詢SQL
- 391、Java框架46 -【Hibernate - 查詢HQL、查詢Criteria、查詢標準SQL】 2020.10.19Java框架SQL
- SQL-基礎語法 - 條件查詢 - 模糊查詢SQL
- SQL-小白最佳入門sql查詢一SQL
- ATM-簡單SQL查詢SQL
- SQL 三表聯合查詢SQL
- MongoDB 如何支援類 SQL 查詢MongoDBSQL
- 01-sql-聯合查詢SQL
- SQL的基礎查詢案例SQL
- SQL 查詢中的 NULL 值SQLNull
- ASP.Net LINQ to SQl查詢ASP.NETSQL
- 幾個SQL查詢小技巧SQL
- sql-server高階查詢SQLServer
- Spring Data Jpa 的簡單查詢多表查詢HQL,SQL ,動態查詢, QueryDsl ,自定義查詢筆記SpringSQL筆記
- MyBatis(六) sql片段定義、級聯查詢、巢狀查詢MyBatisSQL巢狀