https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true
포인트!
각 학생이 만든 도전 횟수 출력!
여기서 횟수 max값을 제외하고는 도전횟수가 중복되면 정렬 기준으로 하나만 나오도록 해야 됨.
WITH CTE AS(
SELECT
hac.hacker_id,
ANY_VALUE(hac.name) AS hacker_name,
COUNT(*) cnt
FROM
Hackers hac
INNER JOIN Challenges cal
ON hac.hacker_id=cal.hacker_id
GROUP BY
hac.hacker_id
ORDER BY
cnt DESC,
hac.hacker_id
)
SELECT *
FROM
CTE
WHERE 1=1
AND cnt IN (SELECT cnt
FROM CTE
GROUP BY cnt
HAVING COUNT(cnt)=1)
OR cnt = (SELECT MAX(cnt)
FROM CTE)
본 쿼리문에서 cnt를 그룹화 후 중복이 제거 되도록 함.
추가로 MAX값이 출력되도록함.