[Hacker Rank] SQL Intermediate 'Contest Leaderboard' (Medium)

2025. 8. 22. 18:19·코딩 테스트/02. SQL

📌 문제 목표

  • 목표: 각 해커의 총점을 구하기
  • 총점: 각 문제마다 그 해커가 제출한 점수 중 최고 점수만 반영
    그리고  그 최고 점수들을 모든 문제에 대해 합산한다.
  • 조건:
    1. 총점이 0인 해커는 제외
    2. 정렬 순서: TOTAL_SCORE DESC, hacker_id ASC

📌 문제 해결 접근 과정

1. 해커별, 문제별 최고 점수목록 구하기

 SELECT 
        hacker_id,
        challenge_id,
    MAX(score) AS MAX_SCORE
FROM Submissions
GROUP BY hacker_id, challenge_id

2. 총점이 0 점 제외

SELECT
    H.hacker_id,
    H.name,
    SUM(TOTAL.MAX_SCORE) AS TOTAL_SCORE
FROM 
    Hackers AS H
JOIN 
(
  --위 쿼리
) AS TOTAL
ON H.hacker_id = TOTAL.hacker_id
GROUP BY 
    TOTAL.hacker_id,H.name
HAVING 
    SUM(TOTAL.MAX_SCORE) > 0
ORDER BY 
    TOTAL_SCORE DESC, hacker_id ASC;

 

3. 최종 제출 쿼리

SELECT
    H.hacker_id,
    H.name,
    SUM(TOTAL.MAX_SCORE) AS TOTAL_SCORE
FROM 
    Hackers AS H
JOIN 
(
    SELECT 
        hacker_id,
        challenge_id,
    MAX(score) AS MAX_SCORE
    FROM Submissions
    GROUP BY hacker_id, challenge_id
) AS TOTAL
ON H.hacker_id = TOTAL.hacker_id
GROUP BY 
    TOTAL.hacker_id,H.name
HAVING 
    SUM(TOTAL.MAX_SCORE) > 0
ORDER BY 
    TOTAL_SCORE DESC, hacker_id ASC;

'코딩 테스트 > 02. SQL' 카테고리의 다른 글

[프로그래머스] Oracle SQL (Lv1, 24문제)  (1) 2025.09.11
[Hacker Rank] SQL Intermediate 'Symmetric Pairs' (Medium)  (4) 2025.08.22
[Hacker Rank] SQL Intermediate 'Top Competitors' (Medium)  (0) 2025.08.22
[Hacker Rank] SQL Intermediate 'The Report' (Medium)  (0) 2025.08.22
[Hacker Rank] SQL Intermediate 'Weather Observation Station 5'(Medium)  (0) 2025.08.22
'코딩 테스트/02. SQL' 카테고리의 다른 글
  • [프로그래머스] Oracle SQL (Lv1, 24문제)
  • [Hacker Rank] SQL Intermediate 'Symmetric Pairs' (Medium)
  • [Hacker Rank] SQL Intermediate 'Top Competitors' (Medium)
  • [Hacker Rank] SQL Intermediate 'The Report' (Medium)
Growth DA Log
Growth DA Log
Growth DA Log 님의 블로그 입니다.
  • Growth DA Log
    Growth DA Log님의 블로그
    Growth DA Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (125)
      • TIS_COMPANY (6)
      • 코딩 테스트 (61)
        • 01. Python (3)
        • 02. SQL (58)
      • 데이터 분석 (53)
        • 01. BigQuery (9)
        • 02. GA4 (1)
        • 02-1. GA4를 더 잘 다루기 위한 마케팅 개.. (5)
        • 03. streamlit (5)
        • 04. Git (12)
        • 05. 데이터 엔지니어링 (3)
        • 06. 데이터 모델링 (11)
        • 07. Excel (0)
        • 08. Tableau (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    윈도우함수
    Reset
    tableau
    이행성
    쿼리테스트
    SQL
    ROW_NUMBER
    프로그래머스
    코딩테스트
    solvesql
    cross_join
    DENSE_RANK
    rank
    revert
    tableaubootcamp
    streamlit
    코드잇스프린트후기
    코테
    git
    AARRR
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Growth DA Log
[Hacker Rank] SQL Intermediate 'Contest Leaderboard' (Medium)
상단으로

티스토리툴바