MySQLでグループ化した後に各グループにシーケンス番号を付与する方法

MySQL の変数を利用することで、各グループごとに連番を生成できます。以下は 1 つの例です。

SET @row_number = 0;
SET @current_group = '';

SELECT 
    CASE WHEN @current_group = group_column THEN @row_number := @row_number + 1
         ELSE @row_number := 1 AND @current_group := group_column
    END AS sequence_number,
    group_column,
    other_column
FROM
    your_table
ORDER BY
    group_column;

上記の例では、your_table を実際のテーブル名、group_column をグループ化するカラム名、other_column を表示したいその他列の名前に置き換える必要があります。

group_column列でグループ化し、各グループについて連番を生成します

bannerAds