[HackerRank] Challenges

mzzzi·2022년 4월 25일
0

HackerRank SQL

목록 보기
49/52
post-thumbnail

MySQL > Challenges


Julia asked her students to create some coding challenges. Write a query to print the hacker_id, name, and the total number of challenges created by each student. Sort your results by the total number of challenges in descending order. If more than one student created the same number of challenges, then sort the result by hacker_id. If more than one student created the same number of challenges and the count is less than the maximum number of challenges created, then exclude those students from the result.

Input Format

The following tables contain challenge data:

Hackers: The hacker_id is the id of the hacker, and name is the name of the hacker.

Challenges: The challenge_id is the id of the challenge, and hacker_id is the id of the student who created the challenge.

Sample Output 0

21283 Angela 6
88255 Patrick 5
96196 Lisa 1

Sample Output 1

12299 Rose 6
34856 Angela 6
79345 Frank 4
80491 Patrick 3
81041 Lisa 1

My Answer


SELECT H.HACKER_ID, H.NAME, COUNT(C.CHALLENGE_ID) C_ID
FROM HACKERS H JOIN CHALLENGES C ON H.HACKER_ID = C.HACKER_ID
GROUP BY H.HACKER_ID, H.NAME
HAVING C_ID = (SELECT MAX(C_ID)  -- ㅡMAX값
              FROM (SELECT COUNT(CHALLENGE_ID) C_ID
                    FROM CHALLENGES
                    GROUP BY HACKER_ID)A )
    OR C_ID IN (SELECT C_ID -- 중복값 제거
                 FROM (SELECT COUNT(CHALLENGE_ID) C_ID
                        FROM CHALLENGES
                        GROUP BY HACKER_ID) A
                 GROUP BY C_ID
                 HAVING COUNT(C_ID) = 1)
ORDER BY C_ID desc, HACKER_ID;
profile
무럭무럭 성장하라🌳

0개의 댓글