SQL 고득점 Kit / GROUP BY - 1. 고양이와 개는 몇 마리 있을까

김선호·2022년 9월 7일
0

SQL

목록 보기
3/3
post-thumbnail

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59040


문제

결과 예시


쿼리(MySQL)

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)

profile
Every Run, Learn Counts.

0개의 댓글