본문 바로가기

SQL/[HackerRank]

[HackerRank/MySQL] Contest Leaderboard

728x90

< Problem >

코딩 콘테스트 참가자의 ID와 이름, 총 점수 출력하기(총 점수 기준 내림차순)

링크:  https://www.hackerrank.com/challenges/contest-leaderboard/problem

 

Contest Leaderboard | HackerRank

Generate the contest leaderboard.

www.hackerrank.com


< Code >

SELECT id, h.name, SUM(score) AS total 
FROM (SELECT s.challenge_id, MAX(s.score) AS score, s.hacker_id AS id
      FROM submissions s
      GROUP BY s.challenge_id, s.hacker_id)AS m
      JOIN hackers h ON h.hacker_id = m.id
GROUP BY id, h.name HAVING SUM(score)>0
ORDER BY total DESC, id ASC

 

< Lesson & Learned >

SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열
SUM( ): 속성 값의 합계를 검색하기 위한 집계함수

FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열
MAX( ): 속성 값의 최대값을 검색하기 위한 집계함수
GROUP BY: 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색. HAVING 키워드를 이용해 그룹에 대한 조건을 작성함.

JOIN ON: 추가예정
ORDER BY: 결과 테이블 내용을 원하는 순서로 출력. 오름차순(기본): ASC, 내림차순: DESC

728x90

'SQL > [HackerRank]' 카테고리의 다른 글

[HackerRank/MySQL] Placements  (1) 2023.04.14
[HackerRank/MySQL] SQL Project Planning  (0) 2023.04.14
[HackerRank/MySQL] Challenges  (0) 2023.04.14
[HackerRank/MySQL] Ollivander's Inventory  (0) 2023.04.11
[HackerRank/MySQL] Top Competitors  (0) 2023.03.30