질문 링크: https://www.hackerrank.com/challenges/full-score/problem?isFullScreen=true
질문
Julia는 방금 코딩 대회를 마쳤고 리더보드를 구성하는 데 도움이 필요합니다!해당 항목을 인쇄하는 쿼리를 작성합니다. hacker_id 그리고 이름 만점을 받는 해커 하나 이상 도전. 결과는 해커가 만점을 받은 총 도전 수를 기준으로 내림차순으로 정렬됩니다.한 명 이상의 해커가 같은 수의 도전에 대해 만점을 받으면 오름차순으로 정렬하십시오. hacker_id.
입력 형식
아래 표에는 일치 데이터가 포함되어 있습니다.
- 해커: 이것 hacker_id 해커의 ID이며, 이름 해커의 이름입니다.

- 어려움: 이것 난이도 챌린지의 난이도이며, 분수 난이도에 대한 도전 점수입니다.

- 도전: 이것 Challenge_id 챌린지의 아이덴티티, hacker_id 챌린지를 시작한 해커의 ID이며, 난이도 도전의 난이도입니다.

- 의견: 이것 submit_id 커밋의 ID입니다. hacker_id 제출된 해커의 아이디, Challenge_id 제출물이 속한 챌린지의 ID이며, 분수 제출된 점수입니다.

샘플 입력
해커 테이블:
어려움 테이블:
도전 테이블:
의견 테이블:
샘플 출력
90411 조
설명하다
해커 86870 점수를 얻었다 30 도전 71055 난이도는 2, 그래서 86870 이 챌린지의 만점입니다.
해커 90411 점수를 얻었다 30 도전 71055 난이도는 2, 그래서 90411 이 챌린지의 만점입니다.
해커 90411 점수를 얻었다 100 도전 66730 난이도는 6. 그래서 90411 이 챌린지의 만점입니다.
해커만 90411 여러 챌린지에서 만점을 받았기 때문에 인쇄했습니다. hacker_id 그리고 이름 ~처럼 2 공백으로 구분된 값.
문제 설명
(번역 도움)
Julia는 방금 코딩 대회 주최를 마쳤으며 순위표를 구성하는 데 도움이 필요합니다! 각 hacker_id 그리고 둘 이상 도전에서 완벽한 점수를 얻은 해커 이름 인쇄를 작성합니다. 해커가 채점한 총 챌린지 수의 내림차순으로 출력을 정렬합니다. 한 명 이상의 해커가 동일한 수의 문제에 대해 만점을 기록했습니다. hacker_id 오름차순으로 정렬합니다.
(설명하다)
해커 86870 실버 어려움 2 도전 71055에서 30 득점 그래서 86870 실버 이 챌린지에서 만점을 받았습니다.
해커 90411 실버 어려움 2 도전 71055에서 30 득점 그래서 90411 실버 이 챌린지에서 만점을 받았습니다.
해커 90411 실버 어려움 6 도전 66730에서 100 득점 그래서 90411 실버 이 챌린지에서 만점을 받았습니다.
해커 90411 오직 하나 이상의 챌린지에서 만점을 획득하면 hacker_id 그리고 이름 다음과 같이 인쇄됩니다.
2값은 공백으로 구분됩니다.
답변
SELECT s.hacker_id, h.name
FROM Hackers h join Challenges c using(hacker_id)
join Difficulty d using(difficulty_level)
join Submissions s using(score)
WHERE d.score = s.score
GROUP BY s.hacker_id, h.name
HAVING count(s.challenge_id) > 1
ORDER BY count(s.challenge_id) DESC, s.hacker_id
솔루션