Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Classificação do mySQL na consulta de highscore


A ideia é perguntar "quantos jogadores estão acima 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 tornar o resultado baseado em 1 em vez de baseado em 0