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

マルチイベントトーナメントの順位

    同じEvent内のスコアが高い値への自己結合を使用して、MySQLのランキング関数をエミュレートできます。 、次に各参加者のより高いスコアの数を数えます:

    SELECT s1.Name, s1.Event, s1.Score, COUNT(s2.Name)+1 AS Rank
    FROM scores s1
    LEFT JOIN scores s2 ON s2.Event = s1.Event AND s2.Score > s1.Score
    WHERE s1.Name = 'Bob'
    GROUP BY s1.Name, s1.Event, s1.Score
    ORDER BY s1.Name, s1.Event
    

    出力:

    Name    Event   Score   Rank
    Bob     1       100     1
    Bob     2       75      3
    Bob     3       80      2
    

    dbfiddleのデモ




    1. T-SQLでのランダム加重選択

    2. 最後に追加されたアイテムのインスタンスを取得するにはどうすればよいですか?

    3. MySQL CRC32()関数–例

    4. mysql結合テーブルクエリ2の値