oracleやsqlserverでは、項目毎に連番を付与する関数が提供されている。
◆row_number関数
SELECT 商品コード , ROW_NUMBER() OVER ( PARTITION BY 商品コード ORDER BY 商品コード DESC ) ROW FROM shouhin_tbl ;
mysqlでは上記関数が無い為、以下で対応。
◆concat_ws関数を利用
SELECT t.商品コード , @row_num := IF(@prev_value=concat_ws('',t.商品コード),@row_num+1,1) as row ,@prev_value := concat_ws('',t.商品コード) as prev_value FROM shouhin_tbl t, (SELECT @row_num := 1) x, (SELECT @prev_value := '') y ORDER BY t.商品コード ;
![項目に連番つける](https://apl-py.com/blog/wp-content/uploads/2015/08/b9511d9595cc3a293b42ad772d5aa931.jpg)