SQL/문제풀이
[HackerRank] Top Competitors
응엉잉
2024. 5. 10. 10:03
https://www.hackerrank.com/challenges/full-score/problem?isFullScreen=true
Top Competitors | HackerRank
Query a list of top-scoring hackers.
www.hackerrank.com
1개 이상의 challange에서 최고득점을 한 해커의 hacker_id와 name을 출력하는 문제
SELECT s.hacker_id,
h.name
FROM submissions s
INNER JOIN challenges c ON s.challenge_id = c.challenge_id -- 문제 난이도를 table에 추가하기 위해 JOIN
INNER JOIN difficulty d ON c.difficulty_level = d.difficulty_level -- 문제의 최고 score를 추가하기 위해
INNER JOIN hackers h ON s.hacker_id = h.hacker_id -- hacker name을 추가하기 위해
WHERE s.score = d.score -- submission score랑 difficulty table의 score (문제 배점)랑 같은 경우만 출력
GROUP BY s.hacker_id, h.name -- hacker_id와 name으로 GROUP BY 해서 row의 갯수를 count할거임
HAVING COUNT(*) > 1 -- COUNT가 2 이상인 경우에 대해서만 필터링
ORDER BY COUNT(*) DESC, s.hacker_id -- 원하는대로 ORDER