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

Mysql Max withGroupbyクエリ

    これにより、探している結果が得られるはずです。 MySqlにはPARTITIONがないため SQL SERVERとして機能するため、既知の回避策を使用しました。

    SELECT tmp.id, tmp.userid,tmp.username,tmp.`date`,score FROM
       (SELECT *, IF(@prev<>userid, @rownum := 1, @rownum := @rownum+1 ) AS rank,
               @prev := userid
        FROM scores s0
        JOIN (SELECT @rownum := NULL, @prev := 0) AS r
        ORDER BY s0.userid, s0.score DESC, s0.`date` DESC
       ) AS tmp
    WHERE tmp.rank=1
    ORDER BY tmp.score DESC, tmp.`date` desc
    



    1. varcharデータ型を日時データ型に変換すると、値が範囲外になりました

    2. 新しいMacProを正当化する

    3. SQLでフィルターシステムを実装する方法は?

    4. データベースの速度を大幅に低下させている6つの問題クエリ