sql >> データベース >  >> RDS >> Mysql

異なる列値ごとの自動番号とリセットカウント

    テストされていませんが、これでうまくいくはずです:

    SELECT
    IF(@prev != a.clientid, @rownum:=1, @rownum:[email protected]+1) as rownumber, @prev:=a.clientid, a.*
    FROM (
    SELECT 
    visitdate, 
    clientid 
    FROM visit, (SELECT @rownum := 0, @prev:='') sq
    ORDER BY clientid,visitdate
    ) a
    

    ところで、「@ rownum機能」はありません。これは、いくつかの自作の「ソリューション」であり、@rownumは単なる変数です。 @whateverという名前を付けることもできます。




    1. 選択クエリでループする

    2. 継承を使用したJPAマッピングビューとテーブル

    3. SQL結合に同じ名前の2つの列が存在する場合に、1つのテーブル列から値を取得する方法

    4. SQLSTATE [HY000][2005]不明なMySQLサーバーホスト'localhost:3306'(2)