https://www.hackerrank.com/challenges/full-score/problem?isFullScreen=true
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
'SQL > 문제풀이' 카테고리의 다른 글
[HackerRank] Weather Observation Station 20 / MySQL로 medium 구하기 (0) | 2024.05.10 |
---|---|
[HackerRank] SQL Project Planning 📌 (0) | 2024.05.10 |
[HackerRank] Conest Leaderboard (0) | 2024.05.10 |
[HackerRank] Interviews (0) | 2024.05.09 |
[HackerRank] The Report (0) | 2024.05.09 |