꾸물꾸물 졔의 개발공부
[MySQL] 프로그래머스 - 고양이와 개는 몇 마리 있을까 (GROUP BY~HAVING, String) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/59040
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이 때 고양이를 개보다 먼저 조회해주세요.
구현 과정
- ANIMAL_TYPE 별로 그룹화하여, 고양이와 개인 그룹 찾기
- 고양이, 개 각각의 데이터 갯수 (=몇마리) COUNT 하기
- 고양이 Cat을 개 Dog보다 먼저 출력하기 위해 ANIMAL_TYPE 오름차순 정렬
1️⃣ ANIMAL_TYPE별로 그룹화하여 고양이, 개인 그룹만 추출하기
GROUP BY 연산자로 그룹을 만들고, HAVING 절로 조건을 추가하여 조건에 부합하는 그룹만 출력한다. ANIMAL_TYPE이 'Cat' OR 'Dog'인 그룹을 찾는다. String 비교를 위해 = 연산자를 활용한다.
GROUP BY ANIMAL_TYPE
HAVING ANIMAL_TYPE ='Cat' OR ANIMAL_TYPE ='Dog'
2️⃣ 고양이, 개 각각의 데이터 갯수 COUNT
1번 과정에서 그룹화하여 고양이와 개 그룹을 찾아내었다. 각각 몇마리인지 세기 위해 그룹함수 COUNT() 를 사용하여 데이터가 몇개인지 센다.
3️⃣ ANIMAL_TYPE 오름차순 정렬
Cat 이 Dog 보다 사전순으로 앞서 있으므로 오름차순 정렬하면 고양이를 먼저 조회할 수 있다. ORDER BY 연산자 이용, 기본값 오름차순 (ASC)
ORDER BY ANIMAL_TYPE
✔️코드
SELECT ANIMAL_TYPE, COUNT(*)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
HAVING ANIMAL_TYPE = 'Cat' OR ANIMAL_TYPE = 'Dog'
ORDER BY ANIMAL_TYPE;
'알고리즘 > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 조건에 맞는 사용자 정보 조회하기 (String, CONCAT(), SubQuery) (0) | 2023.04.26 |
---|---|
[MySQL] 프로그래머스 - 동명 동물 수 찾기 (GROUP BY) (0) | 2023.04.25 |
[MySQL] 프로그래머스 - 최솟값 구하기 (MIN) (0) | 2023.04.22 |
[MySQL] 프로그래머스 - DATETIME에서 DATE로 형 변환 (DATE) (1) | 2023.04.21 |
[MySQL] 프로그래머스 - 자동차 평균 대여 기간 구하기 (DATE, GROUP BY, AVG) (0) | 2023.04.20 |