728x90
< Problem >
contest_id, hacker_id, name, total_submissions의 합, total_accepted_submissions의 합, total_views의 합, total_unique_views의 합 구하기 (contest_id를 기준으로 오름차순 정렬)
링크: https://www.hackerrank.com/challenges/interviews/problem
Interviews | HackerRank
find total number of view, total number of unique views, total number of submissions and total number of accepted submissions.
www.hackerrank.com
< Code >
SELECT Contests.contest_id, hacker_id, name, SUM(total_submissions), SUM(total_accepted_submissions), SUM(total_views), SUM(total_unique_views)
FROM Contests
JOIN Colleges ON Contests.contest_id = Colleges.contest_id
JOIN Challenges ON Colleges.college_id = Challenges.college_id
LEFT JOIN (SELECT challenge_id, SUM(total_views) as total_views, SUM(total_unique_views) AS total_unique_views
FROM view_stats
GROUP BY challenge_id) AS v_stats ON Challenges.challenge_id = v_stats.challenge_id
LEFT JOIN (SELECT challenge_id, sum(total_submissions) as total_submissions, sum(total_accepted_submissions) as total_accepted_submissions
FROM submission_stats
GROUP BY challenge_id) AS s_stats ON Challenges.challenge_id = s_stats.challenge_id
GROUP BY Contests.contest_id, hacker_id, name HAVING SUM(total_submissions) + SUM(total_views) > 0
ORDER BY contest_id
< Lesson & Learned >
SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열
SUM( ): 속성 값의 합계를 검색하기 위한 집계함수
FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열
JOIN ON: 추가예정
LEFT JOIN ON: 추가예정
GROUP BY: 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색. HAVING 키워드를 이용해 그룹에 대한 조건을 작성함.
ORDER BY: 결과 테이블 내용을 원하는 순서로 출력. 오름차순(기본): ASC, 내림차순: DESC
728x90
'SQL > [HackerRank]' 카테고리의 다른 글
[HackerRank/MySQL] Draw The Triangle 1 (0) | 2023.04.25 |
---|---|
[HackerRank/MySQL] 15 Days of Learning SQL (0) | 2023.04.25 |
[HackerRank/MySQL] Symmetric Pairs (0) | 2023.04.14 |
[HackerRank/MySQL] Placements (1) | 2023.04.14 |
[HackerRank/MySQL] SQL Project Planning (0) | 2023.04.14 |