ランキングを取得するSQL
結構よく使いますが忘れちゃうので覚え書き
表名:rankings 
カラム1:name (名前)
カラム2:point (ポイント)
☆ 全体の順位リストを取得
ORDER BYによって1位から並べて
LIMIT設定によって取得する件数を変更
例では10位までのデータを取得
SELECT r1.name, 
       r1.point, 
       (SELECT count(r2.point)  
           FROM rankings as r2 
           WHERE r2.point > r1.point)+1 as rank 
FROM rankings as r1 
ORDER BY r1.point 
DESC LIMIT 10;
☆ 対象データの順位を取得
ユーザー名 greenwich の順位を取得。
自分より値の大きなpointをカウントして+1した値が自身の順位になる。
SELECT point, 
       (SELECT COUNT(id) 
           FROM rankings t2 
           WHERE t2.point > t1.point)+1 AS ranking 
FROM rankings t1 
WHERE name = 'greenwich';
	 
	 
      

