[프로그래머스/ORACLE] 동명 동물 수 찾기(GROUP BY 로 묶은 데이터의 각 개수 구하기)

2023. 10. 22. 16:19SQL/ORACLE

내코드

-- 코드를 입력하세요
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS 
GROUP BY NAME
HAVING COUNT(NAME) >1
ORDER BY NAME

느낀점

COUNT함수는 어렵다..

내가 아는 함수라 하더라도 아직 모르는게 많구나..

이번 문제는 GROUP BY 로 묶은 데이터들의 각 개수를 구하는 문제였다.

COUNT는 집계함수라서 HAVING에서 써야한다고 한다. WHERE에서는 사용할 수 없다.

총 개수를 구하기 위해서는

-- 코드를 입력하세요
SELECT COUNT(*) 
FROM (
    SELECT NAME, COUNT(NAME)
    FROM ANIMAL_INS 
    GROUP BY NAME
    HAVING COUNT(NAME) >1
)

이런식으로 작성하면 된다.