728x90
< Problem >
2개 이상의 챌린지에서 만점을 받은 해커ID와 이름 출력하기 (챌린지 횟수 기준 내림차순, 해커ID 기준 오름차순)
링크: https://www.hackerrank.com/challenges/full-score/problem
< Code >
SELECT s.hacker_id, h.name
FROM submissions s
JOIN challenges c ON s.challenge_id = c.challenge_id
JOIN difficulty d ON c.difficulty_level = d.difficulty_level
JOIN hackers h ON s.hacker_id = h.hacker_id
WHERE d.score = s.score
GROUP BY s.hacker_id, h.name HAVING COUNT(s.challenge_id) >= 2
ORDER BY COUNT(s.challenge_id) DESC, s.hacker_id ASC
< Lesson & Learned >
SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열
FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열
JOIN ON: 추가예정
WHERE: 키워드와 함께 비교 연산자(=, <, >=, <>)와 논리 연산자(AND, OR, NOT)를 이용한 검색 조건 제시
GROUP BY: 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색. HAVING 키워드를 이용해 그룹에 대한 조건을 작성함.
ORDER BY: 결과 테이블 내용을 원하는 순서로 출력. 오름차순(기본): ASC, 내림차순: DESC
728x90
'SQL > [HackerRank]' 카테고리의 다른 글
[HackerRank/MySQL] Challenges (0) | 2023.04.14 |
---|---|
[HackerRank/MySQL] Ollivander's Inventory (0) | 2023.04.11 |
[HackerRank/MySQL] The Report (0) | 2023.03.30 |
[HackerRank/MySQL] Weather Observation Station 20 (0) | 2023.03.30 |
[HackerRank/MySQL] New Companies (0) | 2023.03.30 |