首頁 資料庫 Oracle 淺談Oracle中的row_number()、rank()、dense_rank()

淺談Oracle中的row_number()、rank()、dense_rank()

May 13, 2020 pm 03:03 PM
oracle

下面這篇文章和大家談談Oracle中的row_number()、rank()、dense_rank()。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談Oracle中的row_number()、rank()、dense_rank()

Oracle:row_number()、rank()、dense_rank()

語法:ROW_NUMBER( )  OVER();

row_number的用途非常廣泛,排序最好用它,它會為查詢出來的每一行記錄產生一個序號,依序排序且不會重複,注意使用row_number函數時必須要用over子句選擇對某一列進行排序才能產生序號。

rank函數用來傳回結果集的分區內每行的排名,行的排名是相關行之前的排名數加一。簡單來說rank函數就是對查詢出來的記錄進行排名,與row_number函數不同的是,rank函數考慮到了over子句中排序字段值相同的情況,如果使用rank函數來生成序號,over子句中排序字段值相同的序號是一樣的,後面字段值不相同的序號將跳過相同的排名號排下一個,也就是相關行之前的排名數加一,可以理解為根據當前的記錄數生成序號,後面的記錄依此類推。

dense_rank函數的函數與rank函數類似,dense_rank函數在產生序號時是連續的,而rank函數產生的序號有可能不連續。 dense_rank函數出現相同排名時,將不跳過相同排名號,rank值緊接上一次的rank值。在各個分組內,rank()是跳躍排序,有兩個第一名時接下來就是第三名,dense_rank()是連續排序,有兩個第一名時仍然跟著第二名。

關於Parttion by:Parttion by關鍵字是Oracle中分析性函數的一部分,用於給結果集進行分區。它和聚合函數Group by不同的地方在於它只是將原始資料進行名次排列,能夠傳回一個分組中的多筆記錄(記錄數不變),而Group by是對原始資料進行聚合統計,一般只有一筆反映統計值的結果(每組回傳一條)。

TIPS:

使用rank over()的時候,空值是最大的,如果排序欄位為null, 可能造成null欄位排在最前面,影響排序結果。

可以這樣: rank over(partition by course order by score desc nulls last)

總結:

##在使用排名函數的時候需要注意以下三點:

1、排名函數必須有OVER 子句。

2、排名函數必須有包含 ORDER BY 的 OVER 子句。

3、分組內從1開始排序。

推薦教學:《

Oracle教學

以上是淺談Oracle中的row_number()、rank()、dense_rank()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

oracle資料庫日誌會保存多久 oracle資料庫日誌會保存多久 May 10, 2024 am 03:27 AM

Oracle 資料庫日誌的保留期限取決於日誌類型和配置,包括:重做日誌:由 "LOG_ARCHIVE_DEST" 參數配置的最大大小決定。歸檔重做日誌:由 "DB_RECOVERY_FILE_DEST_SIZE" 參數配置的最大大小決定。線上重做日誌:不歸檔,在資料庫重新啟動時遺失,保留期限與實例運行時間一致。稽核日誌:由 "AUDIT_TRAIL" 參數配置,預設保留 30 天。

oracle資料庫啟動步驟順序為 oracle資料庫啟動步驟順序為 May 10, 2024 am 01:48 AM

Oracle 資料庫啟動順序為:1. 檢查前置條件;2. 啟動監聽器;3. 啟動資料庫執行個體;4. 等待資料庫開啟;5. 連線至資料庫;6. 驗證資料庫狀態;7.啟用服務(如果需要);8. 測試連接。

oracle需要多少內存 oracle需要多少內存 May 10, 2024 am 04:12 AM

Oracle 所需記憶體量取決於資料庫大小、活動等級和所需效能等級:用於儲存資料緩衝區、索引緩衝區、執行 SQL 語句和管理資料字典快取。具體數量受資料庫大小、活動水準和所需效能水準影響。最佳實踐包括設定適當的 SGA 大小、調整 SGA 元件大小、使用 AMM 和監控記憶體使用情況。

oracle資料庫伺服器硬體配置需求 oracle資料庫伺服器硬體配置需求 May 10, 2024 am 04:00 AM

Oracle 資料庫伺服器硬體配置需求:處理器:多核心,主頻至少 2.5 GHz,大型資料庫建議超過 32 個核心。記憶體:小型資料庫至少 8GB,中型 16-64GB,大型資料庫或高負載工作負載高達 512GB 或更多。儲存:SSD 或 NVMe 磁碟,RAID 陣列可提高冗餘和效能。網路:高速網路(10GbE 或更高),專用網路卡,低延遲網路。其他:穩定電源、冗餘組件、相容作業系統和軟體、散熱和冷卻系統。

oracle怎麼讀取dbf文件 oracle怎麼讀取dbf文件 May 10, 2024 am 01:27 AM

Oracle 可以透過以下步驟讀取 dbf 檔案:建立外部表,引用 dbf 檔案;查詢外部表,檢索資料;將資料匯入 Oracle 表。

用oracle資料庫需要多大內存 用oracle資料庫需要多大內存 May 10, 2024 am 03:42 AM

Oracle 資料庫所需記憶體量取決於資料庫大小、工作負載類型和並髮使用者數量。通常建議:小型資料庫:16-32 GB,中型資料庫:32-64 GB,大型資料庫:64 GB 或更多。其他需考慮因素包括資料庫版本、記憶體最佳化選項、虛擬化和最佳實踐(監視記憶體使用量、調整分配)。

oracle定時任務每天都會執行一次建立步驟 oracle定時任務每天都會執行一次建立步驟 May 10, 2024 am 03:03 AM

若要在 Oracle 中建立每天執行一次的定時任務,需要執行以下三個步驟:建立一個作業。為作業新增一個子作業,並設定其計畫運算式為「INTERVAL 1 DAY」。啟用作業。

oracle資料庫需要多大內存 oracle資料庫需要多大內存 May 10, 2024 am 02:09 AM

Oracle 資料庫的記憶體需求取決於以下因素:資料庫大小、活動使用者數量、同時查詢、啟用的功能和系統硬體配置。確定記憶體需求的步驟包括:確定資料庫大小、估計活動使用者數量、了解並發查詢、考慮啟用的功能和檢查系統硬體配置。

See all articles