(HackerRank) 상위 경쟁사

질문 링크: 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