首頁  >  文章  >  資料庫  >  如何在 MySQL 中產生每組的行號?

如何在 MySQL 中產生每組的行號?

Linda Hamilton
Linda Hamilton原創
2024-11-24 00:20:10597瀏覽

How to Generate Row Numbers per Group in MySQL?

MySQL 中每組的行號

在資料庫管理系統中,理解群組內的行編號對於資料分析和操作至關重要。在 MySQL 中,可以透過多種技術來實現根據特定條件(例如船員 ID 和類型)產生行號。

解決方案

為以下物件產生行號對於每個船員ID 和類型的唯一組合,您可以使用以下MySQL 查詢:

SELECT    id,
          crew_id,
          amount,
          type,
         ( 
            CASE type 
            WHEN @curType 
            THEN @curRow := @curRow + 1 
            ELSE @curRow := 1 AND @curType := type END
          ) + 1 AS rank
FROM      Table1 p,
          (SELECT @curRow := 0, @curType := '') r
ORDER BY  crew_id,type asc;

在此query:

  • Table1 表示包含資料的原始表。
  • @curRow 和 @curType 是使用者定義的變量,分別初始化為 0 和空字串。
  • CASE 語句依照型別處理行編號。如果類型與 @curType 匹配,則行號(排名)增加 1。否則,它將 @curRow 重設為 1 並將 @curType 更新為當前類型。
  • CASE 語句中的 1 確保行號從 1 開始。

此查詢傳回所需的輸出,其中行號會新增為名為「rank」的附加欄位。

以上是如何在 MySQL 中產生每組的行號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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