SQL 알고리즘 코드카타

SQL 알고리즘 코드카타 5일차(2) 26.01.03(토)

nom_de_plume 2026. 1. 3. 23:32

부제:

동명 동물 수 찾기, 레벨 1

 

1. 문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/59041

2. 정답 코드:

SELECT
    NAME,
    COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >=2
ORDER BY NAME;

3. 오류 상황: 

SELECT
    DISTINCT NAME AS NAME,
    COUNT(DISTINCT NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY NAME;

=> 이름 중 두 번 이상 쓰인 이름이 출력되게 해야하는 조건 미기재.

=> DISTINCT 오용.

4. 시도 방법: DISTINCT 모두 제거 후 HAVING 절로 두 번 이상 쓰인 이름의 조건을 적용

5. 최종 문제 해결 방법: SELECT문에서 DISTINCT 모두 제거 후 GROUP BY문, HAVING 문 추가 후 해결