일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 백준
- 논문리뷰
- 프로그래머스
- 해시를사용한집합과맵
- 프로그래머스연습문제
- 자료구조
- 브루트포스알고리즘
- 이분탐색
- 프로그래머스코딩테스트
- Image Classification
- C언어
- 백준알고리즘
- 정수론
- C
- 정렬
- 다이나믹프로그래밍
- 문자열
- C++
- SQL
- 이진탐색
- MySQL
- 소수판정
- 큐
- 수학
- 프로그래머스sql
- 구현
- 논문구현
- 사칙연산
- 그리디
- 그리디알고리즘
- Today
- Total
초보 개발자의 이야기, 릿허브
[MySQL] 프로그래머스 SQL 고양이와 개는 몇 마리 있을까 본문
1. 문제이해
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 테이블에서
동물 보호소에 들어온 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성하는 것이 목표이다.
이때, 개보다 고양이를 먼저 조회해야 한다.
2. 문제풀이
첫 GROUP BY 절 문제이니 만큼, GROUP BY 절을 이용해 분류해야 하는 방식의 문제이다.
GROUP BY 절은 속성값을 그룹으로 분류하고자 할 때 사용하는 구문이다.
테이블의 고양이와 개가 각각 몇마리인지를 조회해야 하므로,
GROUP BY를 통해 종(ANIMAL_TYPE) 별로 구분해야한다.
단, 개보다 고양이를 먼저 조회해야하기 때문에,
ORDER BY 절을 이용해 고양이를 먼저 조회하도록 해주었다.
3. 정답
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS "count"
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
SELECT : 종(ANIMAL_TYPE) 명칭과 해당 종(ANIMAL_TYPE)에 해당하는 동물을 몇 마리인지 COUNT
별칭(AS) 를 사용해 'count' 라고 따로 명명해줌.
FROM : ANIMAL_INS에서
GROUP BY : 종(ANIMAL_TYPE) 별로 묶어줌.
(여기서는 개와 고양이로 묶어줌)
ORDER BY : 종(ANIMAL_TYPE) 순으로 정렬. (개보다 고양이를 먼저 조회)
개와 고양이가 각각 몇 마리인지를 조회하는 SQL구문이다.
SELECT, GROUP BY 절을 통해,
GROUP BY 절에 명시된 ANIMAL_TYPE을 기준으로 그룹을 묶었을 때,
ANIMAL_TYPE 별 동물의 수(COUNT(ANIMAL_TYPE))를 조회하도록 했다.
'코딩테스트 > 📒 SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 SQL 동명 동물 수 찾기 (0) | 2021.11.10 |
---|---|
[MySQL] 프로그래머스 SQL 중복 제거하기 (0) | 2021.10.06 |
[MySQL] 프로그래머스 SQL 동물 수 구하기 (0) | 2021.10.06 |
[MySQL] 프로그래머스 SQL 최솟값 구하기 (0) | 2021.10.04 |
[MySQL] 프로그래머스 SQL 최댓값 구하기 (0) | 2021.10.04 |