
Hackerrank- Top Competitors
다중 Join 및 having by 구문 사용 문제
두 과목 이상 만점을 받은 해커들의 아이디와 이름을 출력하시오. 만점을 받은 과목 수로 내림차수, 만약 과목 수가 같다면 아이디 오름차순으로




from Submissions S
inner join challenges C on S.challenge_id = C.challenge_id
inner join difficulty D on C.difficulty_level = D.difficulty_level
inner join hackers H on S.hacker_id = H.hacker_id
where S.score=D.score
group by H.hacker_id, H.name
having count(distinct S.submission_id) > 1 #긴 count구에 Alias를 안 붙인건 select문에서 안 써서 ㅠㅠ
order by count(distinct S.submission_id) DESC, H.hacker_id ASC #ASC 생략가능
Select H.hacker_id, H.name
select H.hacker_id,
H.name
from submissions S
inner join challenges C on S.challenge_id = C.challenge_id
inner join difficulty D on C.difficulty_level = D.difficulty_level
inner join hackers H on S.hacker_id = H.hacker_id
where S.score = D.score
group by H.hacker_id, H.name
having count(distinct S.submission_id)>1
order by count(distinct S.submission_id) DESC, hacker_id ASC;