SQL/Programmers

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

쫄보삽질러 2020. 8. 27. 09:47

 

<문제링크: 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

문제설명: 'ANIMAL_INS' 테이블의 ANIMAL_TYPE 중 CAT과 DOG의 개수가 각각 몇 마리인지 count 하는 문제이다. 이때 고양이를 개보다 먼저 조회하라고 했으므로 맨 마지막에 ORDER BY를 쓰면 된다.

 

 

[1차 시도]

SELECT ANIMAL_TYPE, COUNT(*) AS 'count' 
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;

 

풀이: 첫 줄의 SELECT문은 조회하고자 하는 정보를 뜻하는데 문제에서 동물 종류별로 각각 몇 마리인지를 묻고 있으므로

ANIMAL_TYPE컬럼과 count함수를 사용해 개수를 세어준다.

(count(*) 혹은 count(ANIMAL_TYPE) 둘 중 하나를 써도 무방하다)

 

이때 SELECT ____ AS _____ 라는 표현을 사용하면 조회하고자 하는 컬럼명을 변경하여 출력할 수 있으므로 문제와 같이 'count'로 이름지어 SELECT한다.

 

그 다음 FROM _____ 는 FROM 뒤에 테이블 이름(ANIMAL_INS)을 지정하면, 해당 테이블에서 조회하겠다는 의미다.

 

종류별 개수를 세어 출력해야하므로 GROUP BY를 사용해 필드를 ANIMAL_TYPE 별로 묶어주고, 

CAT 다음에 DOG가 와야하므로 ORDER BY를 사용해 ANIMAL_TYPE의 알파벳 오름차순으로 정렬해준다.

컬럼명 뒤에 아무것도 붙이지 않으면 default는 ASC이다.

 

 

채첨결과: 정상적으로 잘 통과한다.

 

 

 

 

'쫄보의삽질' 블로그 탄생스토리가 궁금하다면:

 

Git push 취소 방법 (feat. '쫄보의삽질' 블로그 탄생 배경)

아래는 저의 생생한 경험담을 바탕으로 작성한 것 입니다. github 관리 폴더의 이름을 실수로 변경하고 삭제해버렸다. 작업 후 commit 하려고 아무리 찾아봐도 폴더가 보이지 않았다. 나의 피땀눈물

ninano1109.tistory.com

 

 

반응형