Mysql
 sql >> Base de données >  >> RDS >> Mysql

Classement mySQL dans Highscore-Query

L'idée est de demander "combien de joueurs se classent au-dessus de @this_user":

select count(*) + 1 from 
(
    /* list of all users */
    SELECT SUM( p.points ) AS sum_points
    FROM user u
    LEFT JOIN points p ON p.user_id = u.id
    GROUP BY u.id        
) x
/* just count the ones with higher sum_points */
where sum_points > (select sum(points) from points where user_id = @this_user)

Modifié pour que le résultat soit basé sur 1 au lieu de basé sur 0