sql >> Databasteknik >  >> RDS >> Mysql

mySQL Rank i Highscore-Query

Tanken är att fråga, "hur många spelare rankas över @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)

Redigerad för att göra resultatet 1-baserat istället för 0-baserat



  1. fel antal eller typer av argument i anrop till P_AA

  2. PGError:ERROR:relation delayed_jobs existerar inte (Postgresql, rails 3.04, delayed_job error)

  3. Singleton alternativ för PHP PDO

  4. CHR() Funktion i Oracle