ある会員でポイントの順位を付けているのですが
全会員の順位は付ける事が出来るのですが
特定の会員IDのみの順位を取得するには、どういったSQLを
発行すればいいでしょうか?
http://www.geocities.jp/mickindex/
mysql> SELECT * FROM test; +------+-------+ | id | point | +------+-------+ | 1 | 500 | | 2 | 1500 | | 3 | 100 | | 4 | 1000 | | 5 | 80 | +------+-------+ 5 rows in set (0.01 sec)
こんなテーブルのばあい id = 3 の順位が欲しければ
mysql> SELECT COUNT(*) AS rank, t1.id -> FROM test t1, test t2 -> WHERE t1.point <= t2.point -> GROUP BY t1.id -> HAVING t1.id = 3 -> ORDER BY rank; +------+------+ | rank | id | +------+------+ | 4 | 3 | +------+------+ 1 row in set (0.01 sec)
こんな感じ?
http://www.geocities.jp/mickindex/
あ、こっちのほうがスマートか. 連投失礼.
mysql> SELECT ( -> SELECT COUNT(t2.point) -> FROM test t2 -> WHERE t2.point > t1.point -> ) + 1 AS rank, t1.id -> FROM test t1 -> WHERE t1.id = 3; +------+------+ | rank | id | +------+------+ | 4 | 3 | +------+------+ 1 row in set (0.01 sec)
コメント(0件)