해커랭크(HackerRank) SQL 문제풀이 - Challenges

2023. 2. 5. 13:36코딩테스트/해커랭크(HackerRank) - MySQL

SELECT H2.HACKER_ID,H2.NAME,COUNT(*) CNT1
    FROM HACKERS H2
    JOIN CHALLENGES C2 ON C2.HACKER_ID=H2.HACKER_ID
    GROUP BY H2.HACKER_ID,H2.NAME
    HAVING CNT1 NOT IN 
    (SELECT TMP.CNT 
        FROM 
        (SELECT H.HACKER_ID,H.NAME,COUNT(C.CHALLENGE_ID) CNT
            FROM HACKERS H
            JOIN CHALLENGES C ON C.HACKER_ID=H.HACKER_ID
            GROUP BY H.HACKER_ID,H.NAME) TMP
        GROUP BY TMP.CNT
        HAVING CNT!=(SELECT COUNT(C1.CHALLENGE_ID)
            FROM HACKERS H1
            JOIN CHALLENGES C1 ON C1.HACKER_ID=H1.HACKER_ID
            GROUP BY H1.HACKER_ID,H1.NAME
            ORDER BY 1 DESC
            LIMIT 1) AND COUNT(CNT)>=2)
    ORDER BY 3 DESC,1;
728x90