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

2つの列に基づくランク

    次のクエリで必要な結果が得られると思います。まず、サブクエリでランクを計算する必要があります。アプローチよりもはるかに簡単だと思います。結果を勝ちで並べ替え、降順で差分をとるだけです(フィールドが数字であると仮定します)。次に、すべての結果を選択して変更します。プレーヤーの説明を注文します。

     SELECT player, wins, diff,rank from
     (
     SELECT player, wins, diff, @winrank := @winrank + 1 AS rank
     from tmpPoradi,(SELECT @winrank := 0) r 
     ORDER BY wins DESC,diff DESC
     )  rt
    ORDER BY player
    

    私が何かを逃していないことを願っています。




    1. to_timestamp()がPostgreSQLでどのように機能するか

    2. nodejsMySQLの接続プールでデータベースを切り替えます

    3. PostgreSQLのOracle高可用性の概念

    4. 制限付きのMysql削除ステートメント