SQL 쿼리 연습/GROUP BY

[Lv.2 / 프로그래머스 / SQL] 동명 동물 수 찾기

김세진 2023. 2. 16. 20:33
반응형

 

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이 (MySQL)

 

중복된 이름의 동물의 수를 조회해야 한다. 단, 중복되지 않은 것을 모두 제외해야 하고 이름이 NULL인 것을 조회하면 안 된다.

 

이름별로 묶어 세야 하므로 GROUP BYCOUNT를 이용해야 하고, 그 COUNT된 컬럼의 수가 2이상인 조건을 걸어줘야 한다. 여기서, WHERE이 아닌 HAVING에 입력해야 하는데 WHERE에 조건을 입력하면 Unknown column 'COUNT' in 'where clause' 과 같은 오류가 발생할 것이다. 이 예외는 SELECT 절 이전에 WHERE절이 실행되기 때문인데, 자세한 것은 아래 포스팅을 참고하길 바란다.

 

 

[SQL] Select절에 별칭(AS) 사용 후 Where절 Unknown Column 발생 이유

에러 메시지 SQL 오류 (1054): Unknown column 'xxx' in 'where clause' 원인 한 마디로 요약하자면 Select절 이전에 Where절이 실행되기 때문이다. 작성 순서상에는 Select 다음에 Where 절이라 실제 실행 순서를 간

my-coding-notes.tistory.com

 

 

SELECT
    NAME
    , COUNT(ANIMAL_ID) AS COUNT
FROM 
    ANIMAL_INS
WHERE
    NAME IS NOT NULL
GROUP BY
    NAME
HAVING
    COUNT > 1
ORDER BY
    NAME

 

 

 

 

반응형