すみません。下記の質問をしたのですが、追記です。

ポイントは、一つの会員に複数個持ってまして
その場合はどの様にすればよいでしょうか?
※要するには、SUM(point) as bとし、このポイントを順位の対象にしたいのです。

--------------------------------------------
MySQLで質問です。
ある会員でポイントの順位を付けているのですが
全会員の順位は付ける事が出来るのですが
特定の会員IDのみの順位を取得するには、どういったSQLを
発行すればいいでしょうか?
------------------------------------------

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/10/21 03:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:chuken_kenkou No.1

回答回数722ベストアンサー獲得回数54

ポイント35pt

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自体はシンプルにできます。

http://q.hatena.ne.jp/だみー

id:makocan

すみません。

自己結合する方法も頂いてもよろしいでしょうか?

2009/10/14 17:55:16
id:chuken_kenkou No.2

回答回数722ベストアンサー獲得回数54

ポイント35pt

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
;

http://q.hatena.ne.jp/だみー

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません