首頁 > 資料庫 > mysql教程 > 如何使用 DENSE_RANK() 取得 SQL 中不同值的行號?

如何使用 DENSE_RANK() 取得 SQL 中不同值的行號?

Patricia Arquette
發布: 2024-12-29 03:08:09
原創
233 人瀏覽過

How to Get Row Numbers for Distinct Values in SQL Using DENSE_RANK()?

在SQL 中使用Row_Number 區分不同值的行

SQL 中的DISTINCT 關鍵字在擷取資料時消除重複行方面著至關重要的作用。但是,當您需要識別列中每個值的唯一出現次數時,這可能還不夠。這就是 Row_Number 發揮作用的地方,但它與 DISTINCT 的組合可能很棘手。

相關查詢嘗試顯示 id 欄位中不同值的行號:

SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64;
登入後複製

但是,此查詢會產生 id 的不同值,而不是每個唯一值的行號。為了達到所需的結果,您可以使用DENSE_RANK() 函數而不是DISTINCT:

SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64;
登入後複製

DENSE_RANK() 將連續的行號分配給不同的值,這與ROW_NUMBER() 不同,後者將間隙分配給重複的值。透過將 DENSE_RANK() 與 DISTINCT 結合,您可以檢索每個唯一 id 值的行號,為進一步分析或處理提供必要的資訊。

以上是如何使用 DENSE_RANK() 取得 SQL 中不同值的行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板