참치코더의 꿈 메모장

Oracle / 프로그래머스 - 중복 제거하기 본문

Oracle

Oracle / 프로그래머스 - 중복 제거하기

참치깡 2025. 9. 16. 20:26
728x90

 

1
2
3
4
5
6
7
SELECT COUNT(*) AS count
FROM (
    SELECT COUNT(NAME)
    FROM ANIMAL_INS
    GROUP BY NAME
    HAVING COUNT(NAME) >= 1
) AS sub;
cs

 

- 전체 보호소에 들어온 동물의 이름중 중복값 및 NULL 값을 제외한 전체 동물의 이름수를 구하는 문제이다.

 

- 서브쿼리를 줘서 FROM절에 모든 동물의 이름별로 그룹화를 한 후에 COUNT 값이 1 이상인 쿼리만 

  뽑아냈다.(이름이 없는 동물들 삭제)

 

- 바깥쪽 쿼리문에서 나온 값들의 쿼리를 COUNT(*)을 사용하면 ROW 1개당 1개씩 COUNT를 더하므로 

  이름이 중복되는 문제도 자동으로 해결이 되어 총 동물의 이름 수를 구할 수 있게 된다. ^^

 

코드 실행 결과

728x90
Comments