sql >> Base de Datos >  >> RDS >> Mysql

mySQL Rank en Highscore-Query

La idea es preguntar, "cuántos jugadores están por encima 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)

Editado para hacer que el resultado se base en 1 en lugar de en 0