ポイントは、一つの会員に複数個持ってまして
その場合はどの様にすればよいでしょうか?
※要するには、SUM(point) as bとし、このポイントを順位の対象にしたいのです。
--------------------------------------------
MySQLで質問です。
ある会員でポイントの順位を付けているのですが
全会員の順位は付ける事が出来るのですが
特定の会員IDのみの順位を取得するには、どういったSQLを
発行すればいいでしょうか?
------------------------------------------
MySQLのバージョンは、何でしょうか?
ユーザ変数を使った例です。
set @rank=0; select @rank:=@rank+1 as rank, id, sum_p from( select id, sum(point) as sum_p from t1 group by id) as x order by sum_p desc
これ以外では、自己結合する方法があります。
MySQL 5.0以降ならビュー表を定義できるので、共通のクエリをビューにすればSQL自体はシンプルにできます。
MySQL 5.0以降なら、ビュー表を使えます。
create view vt1 as select id,sum(point) as p from t1 group by id ;
このビュー表を活用すると、SELECT文をシンプルに書けます。
select (select count(*) from vt1 where p>=x.p) as rank, p, id from vt1 as x -- where id=5 order by p desc ;
すみません。
自己結合する方法も頂いてもよろしいでしょうか?