[TIL] 23.04.10

문종현·2023년 4월 10일
0

TIL

목록 보기
103/119
post-custom-banner

👉 오늘 한 일

  • 책 집필 - 편집 툴 적용
  • 해커랭크 SQL

해커랭크 SQL

1. Top Competitors 📌

이런 방식으로 조인할 테이블의 프로세스를 구성한다.

submissions table을 base로 필요한 정보를 담고 있는 테이블들을 join

1) 제출한 문제의 full score 를 알기 위해 difficuly 테이블의 score 정보가 필요하다.

2) difficulty level 정보가 있어야 full score 를 연결할 수 있고, 그 정보는 Challenges 테이블에 있다.

3) hacker의 이름을 출력하기 위해 Hackers 테이블이 필요하다

SELECT h.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 h.hacker_id = s.hacker_id
WHERE s.score = d.score
-- h.name을 그룹화하는 대신 SELECT절에서 MAX(h.name)으로 표현 가능
GROUP BY h.hacker_id, h.name
-- s.challenge_id 대신 아스타(*) 사용 가능
HAVING COUNT(s.challenge_id) >= 2
ORDER BY COUNT(s.challenge_id) DESC, h.hacker_id
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글