문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59040
SELECT ANIMAL_TYPE, COUNT(*) AS "count"
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
HAVING ANIMAL_TYPE = 'Cat' OR ANIMAL_TYPE = 'Dog' -- HAVING절이 없어도 정답처리가 된다.
ORDER BY ANIMAL_TYPE ASC;
같은 ANIMAL_TYPE(Cat, Dog)에 대하여 그룹으로 묶은 다음 조회해야하므로, GROUP BY
절에 ANIMAL_TYPE 속성을 적어주어 그룹화 한다. (GROUP BY ANIMAL_TYPE
)
이 때 고양이와 개에 대해서만 조회하여야 하므로, 그룹에 대한 조건인 HAVING
절과 함께 ANIMAL_TYPE 속성값이 Cat 또는 Dog에 대해서만 조회할 수 있도록 한다. (프로그래머스에서 제공하는 릴레이션에서는 ANIMAL_TYPE 속성의 속성값으로 Cat과 Dog만 주어지기 때문에, HAVING절을 추가하지 않아도 정답처리가 된다.)
그룹화된 테이블에서 COUNT(*)
또는 COUNT(ANIMAL_TYPE)
을 이용하여 속성 값의 개수를 센다.
ORDER BY
절을 사용하여 ANIMAL_TYPE 속성값을 오름차순으로 정렬한다.(ORDER BY ANIMAL_TYPE ASC
)