쿼리를 작성하려고하는데 이미 stackof에서 대답을 찾았지만 내 요구 사항과 일치하는 항목을 찾지 못했습니다. "nickname"및 "score"라는 두 개의 열이있는 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.
,하자 "jiji"라고 말하고 3을 결과로 얻습니다. 그 이유는 목록에서 세 번째 결과이기 때문입니다.
나는SELECT COUNT(*) AS rank
FROM player
WHERE score >= (SELECT score FROM player WHERE nickname = 'jiji')
처럼 많은 쿼리를 시도했지만 그들은 항상 "지지 통신"또는 "챠오"해당 테이블의 점수로 (20)를 얻을 마지막으로 플레이어의 순위 인 4를 반환합니다.
대신 "jiji"로 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가 아닙니다. 이것들은 같은 것이 아닙니다. –
당신은 이상한 문제를 해결하기 위해 분석 기능을 사용할 필요가 있습니다 – Teja
여기를보세요 : http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select – Galz