私はクエリを作成しようとしていますが、私は既にstackofで答えを探しましたが、私のニーズに合ったものは見つかりませんでした。 私は "nickname"と "score"の2つの列があるplayerという名前のテーブルを持っています。 は私がトップ5選手取得するには、このクエリを使用します。特定のプレーヤーSQLクエリのランクを選択
SELECT nickname, score
FROM player
ORDER BY score DESC LIMIT 5;
を、私は答えとしてこれを得た:、私はシングルプレイヤーのランクを持っているしたいのですが今
nickname - score:
zod - 30
ciao - 20
jiji - 20
mayina - 20
jon - 0.
、してみましょうリスト内の3番目の結果であるため、「jiji」と言い、結果として3を得る。
私は
SELECT COUNT(*) AS rank
FROM player
WHERE score >= (SELECT score FROM player WHERE nickname = 'jiji')
のような多くのクエリを試してみましたが、彼らは常にそのテーブルにスコアとして20を取得し、最後のプレイヤーのランクである「ジジ」または「CIAO」、4を返します。
どうやって「ジジ」を3つにすることができますか?どうもありがとうございました。これは、スコアタイの場合には安定しないことに関する
SET @rank=0;
SELECT *
FROM (SELECT @rank:[email protected]+1, nickname, score
FROM player
ORDER BY score
DESC) AS t
WHERE t.nickname = 'jiji';
正しいコメント:
です。質問にタグを付けるときは注意してください。これは明らかにmysqlであり、sql-serverではありません。これらは同じものではありません。 –
あなたはUR問題を解決するために解析関数を使う必要があります – Teja
ここを見てください:http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select – Galz