在SQL 中按鍵分組對行進行順序編號
在SQL 中對按特定鍵分組的行進行順序編號是常見的需求數據處理。為了實現這一目標,各種 SQL 資料庫提供了本機函數和技術,允許在每個鍵組內進行高效且準確的行編號。
在不同資料庫中的實作
許多流行的SQL資料庫提供了用於連續行編號的內建函數或擴充:
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 列分組的元組:
要依序對每個 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輸出
查詢將產生以下輸出,每個CODE 組中的行按順序編號:
注意:ROW_NUMBER()函數預設從1開始編號。為了與所需的輸出保持一致,表達式 ROW_NUMBER() OVER (PARTITION BY ...) - 1 用於將編號從基於 1 的編號轉換為基於 0 的編號。以上是如何在 SQL 中對群組內的行進行順序編號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!