首頁 >資料庫 >mysql教程 >如何在 SQL 中按鍵組分配連續行號?

如何在 SQL 中按鍵組分配連續行號?

Patricia Arquette
Patricia Arquette原創
2024-12-20 15:39:11632瀏覽

How to Assign Sequential Row Numbers by Key Group in SQL?

SQL 中按鍵組的順序行編號

在 SQL 中,ROW_NUMBER() 函數為結果集中的行分配序號。若要按鍵組分配順序編號,請使用 PARTITION BY 子句按所需鍵將資料分組。

以下是給定表和所需輸出的範例:

SELECT
    CODE,
    ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO,
    NAME
FROM
    MyTable;

輸出:

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

此查詢分配連續行號(C_NO)對於每個鍵組(CODE),從0 開始,按每個組中NAME 的升序排列。

支援的資料庫:

帶有 PARTITION BY 的 ROW_NUMBER()函數以下資料庫支援:

  • SQL伺服器
  • Oracle
  • Postgres
  • Sybase
  • MySQL 8.0
  • >MariaDB 10.2
  • SQLite 3.25

以上是如何在 SQL 中按鍵組分配連續行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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