본문 바로가기

개발/알고리즘 & 자료구조

[프로그래머스][SQL] 고양이와 개는 몇 마리 있을까

반응형

https://programmers.co.kr/learn/courses/30/lessons/59040

 

코딩테스트 연습 - 고양이와 개는 몇 마리 있을까

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 

select ANIMAL_TYPE, count(ANIMAL_TYPE)
from ANIMAL_INS
where (ANIMAL_TYPE = 'cat')
union
select ANIMAL_TYPE, count(ANIMAL_TYPE)
from ANIMAL_INS
where (ANIMAL_TYPE = 'dog')

 

필자는 union을 이용해서 두 테이블을 합쳐 출력했다.

근데 해당 문제 카테고리가 group by였다.

 

다시 group by로 해결해보면..

 

select ANIMAL_TYPE, count(ANIMAL_TYPE)
from ANIMAL_INS
group by ANIMAL_TYPE
order by ANIMAL_TYPE

 

이와 같이 나온다.

union의 처리 비용이 더 클 것으로 예상되므로

후자의 답이 더 효율적인 답이다.

 

order by는 넣지 않았더니 오답처리 되어 넣었다.

문제 설명이 좀 부족한듯,,,

반응형