Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mySQL Rang in Highscore-Abfrage

Die Idee ist zu fragen, "wie viele Spieler über @this_user rangieren":

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)

Bearbeitet um das Ergebnis 1-basiert statt 0-basiert zu machen