programing

특정 사용자로부터 순위, 이름 및 점수를 얻기 위한 SQL 쿼리

javaba 2023. 8. 17. 23:32
반응형

특정 사용자로부터 순위, 이름 및 점수를 얻기 위한 SQL 쿼리

저는 특정 선수에게 순위, 이름, 점수를 받으려고 노력하고 있습니다.

순위를 표시하기 위해 이 쿼리를 사용했습니다(PHP와 함께 사용합니다).

SELECT  count(*) + 1 AS rank
FROM scores
WHERE score > (SELECT score FROM scores WHERE name = '$name');

그리고 이런 식으로 이름과 점수를 얻으려고 노력했습니다.

SELECT  name, score, count(*) + 1 AS rank
FROM scores
WHERE score > (SELECT score FROM scores WHERE name = '$name');

하지만 이것은 내 위에 있는 선수의 점수와 이름을 반환합니다.

순위 및 기타 정보를 얻기 위해 다음과 같은 하위 질의를 제안합니다.

select s.*,
       (select count(*) + 1
        from scores s2
        where s2.score > s.score
       ) as rank
from s
where name = ?;

?매개 변수 이름의 자리 표시자입니다.명명된 매개 변수를 사용할 수도 있습니다.

참고: 이것은 관계를 고려하지 않습니다.관심이 있는 경우:

select s.*,
       (select count(distinct score)
        from scores s2
        where s2.score >= s.score
       ) as rank
from s
where name = ?;
SELECT name,score, @curRank := @curRank + 1 AS rank FROM user p, (SELECT @curRank := 0) r ORDER BY  score DESC

같은 점수의 calculation.in 사례에 대해 이 쿼리를 사용하십시오. 순위를 계산하려면 다른 매개 변수를 사용하십시오.

예: ORDER BY score DESC, user_id는 이렇게 설명합니다.

언급URL : https://stackoverflow.com/questions/51441086/sql-query-to-get-rank-name-and-score-from-specific-person

반응형