[SQL Runday] HackerRank - Top Competitors
4460 단어 hackerrank1일1sqlsql1일1sql
줄리아는 방금 코딩 대회 진행을 마쳤고, 리더보드를 구성하는데 도움이 필요합니다! 각각의
hacker_id
에 따라이름
과 1개 이상의 챌린지를 만점에 성공한 해커들의성적
을 출력하는 쿼리를 작성하세요.
- 해커가 만점(full score)맞은 총 챌린지 갯수를 기준으로 내림차순으로 정렬하세요.
- 1명 이상의 해커가 같은 갯수의 챌린지를 성공했다면, hacker_id 기준 오름차순으로 정렬하세요.
Key Points
where
,group by
,having
서순!!!- 다 맞게 썼는데 자꾸 에러나서 뭔가 했더니, 서순을 계속 틀리고 있었다.
- 외울것. where로 필터링하고, group by로 count세주고, group by 한 칼럼 조건 걸기 위해선 having!!
처음 join만 써서 다 구하기
select s.submission_id, s.hacker_id, s.challenge_id, s.score,
h.name, c.difficulty_level, d.score
from submissions s
join hackers h on s.hacker_id = h.hacker_id
join challenges c on c.challenge_id = s.challenge_id
join difficulty d on d.difficulty_level = c.difficulty_level
where s.score = d.score
잘 구했으므로, 여기서 이제 count(*)로 해커별로 만점 맞은 행 세주고, where-group by- having 순으로 필터링 걸고, Order by로 정렬할 것.
최종 쿼리
select h.hacker_id, h.name
from submissions s
join hackers h on s.hacker_id = h.hacker_id
join challenges c on c.challenge_id = s.challenge_id
join difficulty d on d.difficulty_level = c.difficulty_level
where s.score = d.score
group by h.name, h.hacker_id
having count(*) > 1
order by count(*) DESC, h.hacker_id
Author And Source
이 문제에 관하여([SQL Runday] HackerRank - Top Competitors), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@honeybeat1/SQL-Runday-HackerRank-Top-Competitors저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)