동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요.
SELECT
ANIMAL_TYPE,
count(CASE WHEN ANIMAL_TYPE = 'Dog' THEN 1 END),
count(CASE WHEN ANIMAL_TYPE = 'Cat' THEN 1 END)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
;

이 쿼리는 ANIMAL_TYPE을 기준으로 그룹화한 후, 각각 개와 고양이에 대한 조건을 CASE WHEN을 사용해 두 개의 컬럼으로 나누어 COUNT하려고 했다. 그러나 이 방식은 ANIMAL_TYPE 그룹별로 두 개의 별도 컬럼을 생성하게 되어 의도한 결과와 달랐다.
SELECT
ANIMAL_TYPE,
COUNT(ANIMAL_TYPE) AS COUNT
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE = 'Cat' DESC
;
잘못 생각한 점은
"그룹화가 되어 있는 컬럼을 다시 2개로 쪼갰다는 점"이다.