首頁 > 資料庫 > mysql教程 > 如何在 SQL 中透過鍵分組來實現順序行編號?

如何在 SQL 中透過鍵分組來實現順序行編號?

Mary-Kate Olsen
發布: 2024-12-22 19:57:16
原創
938 人瀏覽過

How to Implement Sequential Row Numbering with Key Grouping in SQL?

SQL 中鍵分組的順序行編號

SQL 提供了一個強大的功能來順序枚舉特定鍵組中的行。當您需要根據不同的類別或屬性組織資料時,此功能特別有用。讓我們探討一下此功能如何在各種 SQL 方言中運作。

不同 SQL 方言中的實現

以下 SQL 方言提供了按鍵組順序進行行編號的解決方案:

  • SQL伺服器
  • Oracle
  • PostgreSQL
  • Sybase
  • MySQL 8.
  • Sybase
  • MySQL 8.0.0.
  • SQLite 3.25

範例資料和所需的投影

考慮以下帶有(CODE,NAME)元組的範例表:

CODE NAME    
---- ----
A    Apple
A    Angel
A    Arizona
B    Bravo
C    Charlie
C    Cat
D    Dog
D    Doppler
D    Data
D    Down
登入後複製

所需的投影使用CODE作為分組屬性的投影看起來如下像:

CODE C_NO NAME    
---- ---- ----
A    0    Apple
A    1    Angel
A    2    Arizona
B    0    Bravo
C    1    Charlie
C    0    Cat
D    0    Dog
D    1    Data
D    2    Down
D    3    Doppler
登入後複製

SQL 查詢來完成順序行編號

要實現按鍵組的順序行編號,您可以利用以下SQL 查詢:

SELECT
    CODE,
    ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 As C_NO,
    NAME
FROM
    MyTable
登入後複製

此查詢將依據CODE 欄位對資料表進行分區,並依NAME對每個分區內的記錄進行排序列,然後從結果行號中減去 1,以獲得每個鍵組所需的從 0 開始的順序編號。

以上是如何在 SQL 中透過鍵分組來實現順序行編號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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