MySQL 中分組資料的行號產生
為按特定列分組的資料分配連續行號是高效資料操作的一項寶貴技術和演示。在這種情況下,您希望根據船員 ID 和類型欄位產生一組資料的行號。
要實現此目的,請使用以下自訂查詢:
讓我們逐步分解查詢:
- 子查詢:
-
子查詢: 自訂查詢以(SELECT @curRow := 0, @curType := '') r 定義的子查詢開始。這會初始化兩個使用者定義的變數 @curRow 和 @curType,分別將它們設為 0 和空字串。這些變數追蹤行號和遇到的類型值。
-
外部查詢: 主查詢由 SELECT id、crew_id ... 表示,從 Table1 擷取所需的資料桌。這裡的主要焦點是排名列的計算。
-
巢狀 CASE 語句: 排名計算中的 CASE 語句檢查目前型別值是否與先前遇到的型別 (@curType) 相符。如果它們匹配,它將 @curRow 加 1 並將增加的值分配給排名。但是,如果類型不同,則會將 @curRow 重設為 1 並將 @curType 更新為目前類型值。這確保了由crew_id和type定義的每個組內準確的行編號。
ORDER BY子句:
最終結果根據crew_id和type按升序排序,這對於正確的行至關重要每個組內的編號分配。 透過遵循此綜合查詢,您可以有效地為由多個列定義的資料組產生行號,為 MySQL 中的資料操作和呈現任務提供通用解決方案。
以上是如何在MySQL中為分組資料產生行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!