SQL 쿼리 연습/GROUP BY
[Lv.2 / 프로그래머스 / SQL] 동명 동물 수 찾기
김세진
2023. 2. 16. 20:33
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

풀이 (MySQL)
중복된 이름의 동물의 수를 조회해야 한다. 단, 중복되지 않은 것을 모두 제외해야 하고 이름이 NULL인 것을 조회하면 안 된다.
이름별로 묶어 세야 하므로 GROUP BY와 COUNT를 이용해야 하고, 그 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
반응형