SQL/MY SQL 문제 풀이(프로그래머스)

[MYSQL] PROGRAMMERS_고양이와 개는 몇 마리 있을까

몽총한몽이네 2024. 2. 21. 21:42
반응형

SELECT ANIMAL_TYPE, count(ANIMAL_ID)count
FROM ANIMAL_INS
WHERE 1=1
AND ANIMAL_TYPE in ("DOG","CAT")
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE

ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

문제

동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성후 고양이를 개보다 먼저 조회

 

일단 개와 고양이 데이터만을 필터 해야하기에 in () 구문으로 ANIMAL_TYPE  에서 DOG, CAT을 뽑아줍니다.

그리고 각각의 고양이 개 타입이 몇마리인지 알아 보기 위함이기 때문에 GROUP BY로 ANIMAL_TYPE을 묶어 줍니다. 그다음 유니크성을 가지는 ANIMAL_ID로 COUNT 합니다. alias는 as를 붙여도 안붙여도 되기에 이번에는 그냥 안붙여서 썼습니다.

다음으로 고양이 먼저 조회가 필요해서 알파벳순으로 고양이가 앞에 있으므로 오름차순으로 ANIMAL_TYPE 을 정렬해주면 마무리입니다.

반응형