https://www.hackerrank.com/challenges/contest-leaderboard/problem?isFullScreen=true
[코드]
select b.hacker_id, b.name, sum(score)
from (select hacker_id, challenge_id, max(score) as score
from Submissions
group by hacker_id, challenge_id) as a
inner join Hackers as b
on a.hacker_id = b.hacker_id
group by b.hacker_id, b.name
having sum(a.score) > 0
order by sum(a.score) desc, b.hacker_id;
[고찰]
이번 문제는 한 헤커당 같은 문제를 여러번 풀 수 있어 그 중 가장 점수가 큰 것을 합산값으로 사용해야 하는 것이었다. 이를 위해서 서브쿼리를 사용해 헤커 아이디와 문제별로 가장 점수가 큰 테이블을 만들고, 이 테이블과 Hacker 테이블을 inner join해야 했다.
'SQL 문제' 카테고리의 다른 글
[HackerRank] The Report (0) | 2023.10.16 |
---|---|
[HackerRank] Weather Observation Station 18 (0) | 2023.10.16 |
[solvesql_Level3] 멘토링 짝꿍 리스트 (0) | 2023.10.16 |
[solvesql_Level3] 작품이 없는 작가 찾기 (0) | 2023.10.14 |
[solvesql_Level3] 지역별 주문의 특징 (0) | 2023.10.14 |