首頁 >資料庫 >mysql教程 >如何在 SQL 中按群組對行進行順序編號?

如何在 SQL 中按群組對行進行順序編號?

Susan Sarandon
Susan Sarandon原創
2024-12-23 14:23:14705瀏覽

How to Number Rows Sequentially by Group in SQL?

在SQL 中按組鍵對行進行順序編號

在SQL 中,您可以使用ROW_NUMBER() 函數對鍵組中的行進行順序編號。此函數為分割區中的每一行指派一個唯一的編號,該編號由 PARTITION BY 子句定義。

文法:

SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY key_column ORDER BY order_column) - 1 AS row_number
FROM
    table_name

範例:

考慮提供:

CODE NAME
A Apple
A Angel
A Arizona
B Bravo
C Charlie
C Cat
D Dog
D Data
D Down
D Doppler

考慮提供:
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
考慮提供:

考慮要在CODE群組中依序對行進行編號,請使用以下查詢:

    這將產生所需的結果:
  • 相容性:
  • ROW_NUMBER() 函數是以下資料庫支援:
  • SQL Server
  • Oracle
  • Postgres

Sybase

MySQL 8.0 Maria 10.SQL2 這涵蓋了最常用的 SQL 資料庫。

以上是如何在 SQL 中按群組對行進行順序編號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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