숑숑이의 개발일기

문제

https://school.programmers.co.kr/learn/courses/30/lessons/59041

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

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

추출된 데이터를 이름순으로 정렬한다.

profile

숑숑이의 개발일기

@숑숑-

풀스택 개발자 준비중입니다