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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-22 19:57:16930瀏覽

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