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

列ごとにグループ化されたクエリ結果の行番号

    これはかなり簡単なはずです。

    SELECT (CASE WHEN @fk <> fk_id THEN @row:=1 ELSE @row:[email protected] + 1 END) AS ordinality, 
           @fk:=fk_id, rcv_date
    FROM   (SELECT @row:=0) AS r, 
           (SELECT @fk:=0) AS f, 
           (SELECT fk_id, rcv_date FROM files ORDER BY fk_id, rcv_date) AS t
    

    fk_idで注文しました 最初にすべての外部キーが一緒になっていることを確認し(実際にテーブルにない場合はどうなりますか?)、次にrcv_dateなどの優先順位を付けました。 。クエリはfk_idの変更をチェックし、変更がある場合は行番号変数が1に設定され、そうでない場合は変数がインクリメントされます。そのincaseステートメントで処理されます。 @fk:=fk_idに注意してください ケースチェックの後に実行されます。そうでない場合は、行番号に影響します。

    編集: たまたま私が最終的に得たものと同じであるあなた自身の解決策に気づきました。称賛! :)




    1. node.js/MySQL:データベースに挿入しようとすると、一部の文字列エンコーディング(Emoji)がエラーをスローします

    2. Oracleスケジューラジョブを作成する

    3. SQLiteのLIKE演算子で大文字と小文字を区別する方法

    4. 平均時間へのMySQLクエリ