문제
https://school.programmers.co.kr/learn/courses/30/lessons/59041
문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAME | TYPE | NULLABLE |
---|---|---|
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
문제
동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
코드
SELECT NAME, COUNT(*) AS count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(*) >= 2
ORDER BY NAME
설명
FROM
ANIMAL_INS 테이블의 전체 데이터를 대상으로 한다
WHERE
문제에서 이름이 NULL인 데이터를 제외하도록 조건을 설정하였으므로 조건을 추가한다
SELECT
NAME 컬럼과 총 동물 수를 집계할 컬럼을 설정한다
GROUP BY
동일한 이름을 그루핑해야하므로 NAME컬럼을 GROUP BY 조건에 추가한다
HAVING
이때 이름이 2번 이상인 경우에만 하도록 조건을 추가한다
ORDER BY
추출된 데이터를 이름순으로 정렬한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/SQL] Lv.2 - 성분으로 구분한 아이스크림 총 주문량 (0) | 2025.01.31 |
---|---|
[프로그래머스/SQL] Lv.4 - 오프라인/온라인 판매 데이터 통합하기 (0) | 2025.01.13 |
[프로그래머스/SQL] Lv.4 - 서울에 위치한 식당 목록 출력하기 (0) | 2025.01.13 |
[프로그래머스/SQL] Lv.3 - 업그레이드 할 수 없는 아이템 구하기 (0) | 2025.01.12 |
[프로그래머스/SQL] Lv.1 - ROOT 아이템 구하기 (0) | 2025.01.12 |