1. 문제 목적
GROUP BY와 COUNT를 활용하여 특정 조건에 따라 데이터를 그룹화하고 집계하는 방법을 학습하는 것이다.
2. 핵심 개념
GROUP BY
- 정의: 데이터를 특정 열 값을 기준으로 그룹화하여 각 그룹별로 요약 결과를 반환한다.
SELECT 열1, COUNT(*)
FROM 테이블명
GROUP BY 열1;
- 주요 특징:결과는 그룹화된 열과 집계된 결과만 반환한다.
- GROUP BY는 반드시 집계 함수(COUNT, SUM 등)와 함께 사용된다.
COUNT 함수
- 정의: 특정 열 또는 레코드의 개수를 계산하는 함수.
SELECT COUNT(*)
FROM 테이블명;
- 주요 특징:COUNT(열 이름): NULL이 아닌 값만 카운트.
- COUNT(*): 모든 레코드를 계산.
2.3 ORDER BY
- 정의: 결과를 특정 열을 기준으로 정렬.
- 사용 방법:내림차순 정렬은 DESC를 명시.
- ORDER BY 열1 ASC, 열2 DESC;
- 오름차순 정렬이 기본.
3. 문제 해결 절차
- 데이터 분석:
- ANIMAL_TYPE 열을 기준으로 데이터를 그룹화해야 한다.
- 각 그룹별로 고양이(Cat)와 개(Dog)의 개수를 집계한다.
- 필터링 조건 설정:
- 데이터의 필터링 조건은 없으며, 모든 데이터를 그룹화에 포함한다.
- 그룹화 및 집계:
- GROUP BY를 사용하여 ANIMAL_TYPE으로 데이터를 그룹화.
- COUNT 함수를 사용하여 각 그룹별 레코드 수를 계산.
- 정렬 조건 추가:
- 문제 요구사항에는 정렬 조건이 없으므로 기본 순서대로 반환.
- SQL 작성 및 실행:
- 모든 요구 조건을 반영한 SQL 작성 및 테스트.
4. 코드 작성
-- 고양이와 개는 몇 마리 있을까?
SELECT
ANIMAL_TYPE AS '동물유형', -- 동물 유형(Cat, Dog)을 표시
COUNT(*) AS '개수' -- 각 동물 유형별 개수를 집계
FROM
ANIMAL_INS -- 대상 테이블
GROUP BY
ANIMAL_TYPE -- 동물 유형별로 그룹화
ORDER BY
ANIMAL_TYPE ASC; -- 동물 유형 오름차순 정렬
5. 코드 분석
SELECT 절
- ANIMAL_TYPE AS '동물유형':AS를 사용해 결과 열의 이름을 '동물유형'으로 지정.
- 동물 유형(고양이, 개)을 반환.
- COUNT(*) AS '개수':AS를 사용해 결과 열의 이름을 '개수'로 지정.
- 각 동물 유형별 레코드 수를 계산.
FROM 절
- ANIMAL_INS:
- 동물 보호소에 들어온 동물 데이터를 포함하는 테이블.
GROUP BY 절
- ANIMAL_TYPE:그룹화된 각 동물 유형별로 COUNT 함수가 적용됨.
- 동물 유형을 기준으로 데이터를 그룹화.
ORDER BY 절
- ANIMAL_TYPE ASC:
- 결과를 동물 유형 기준 오름차순으로 정렬.
'SQL Kit > GROUP BY' 카테고리의 다른 글
가격대 별 상품 개수 구하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.09 |
---|---|
입양 시각 구하기(1) [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.09 |
진료과별 총 예약 횟수 출력하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.04 |
성분으로 구분한 아이스크림 총 주문량 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.04 |
자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.04 |