본문 바로가기
Database

[프로그래머스 SQL - SELECT] 아픈 동물 찾기

by 진홍이 2021. 6. 10.
728x90

아픈 동물 찾기

 

문제 설명

 

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 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

예시

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A365172 Dog 2014-08-26 12:53:00 Normal Diablo Neutered Male
A367012 Dog 2015-09-16 09:06:00 Sick Miller Neutered Male
A365302 Dog 2017-01-08 16:34:00 Aged Minnie Spayed Female
A381217 Dog 2017-07-08 09:41:00 Sick Cherokee Neutered Male

 

이 중 아픈 동물은 Miller와 Cherokee입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

ANIMAL_ID NAME
A367012 Miller
A381217 Cherokee

문제 풀이

차근차근 풀이 시작해 보겠습니다. 

 

우선 ANIMAL_INS 테이블을 조회해 봅시다.

SELECT * FROM ANIMAL_INS;
ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A349996 Cat 2018-01-22 14:32:00 Normal Sugar Neutered Male
A350276 Cat 2017-08-13 13:50:00 Normal Jewel Spayed Female
A350375 Cat 2017-03-06 15:01:00 Normal Meo Neutered Male
A352555 Dog 2014-08-08 04:20:00 Normal Harley Spayed Female
A352713 Cat 2017-04-13 16:29:00 Normal Gia Spayed Female
... ... ... ... ... ...

 

여기서 우리가 보고싶은 항목은 문제에 나와있듯 ANIMAL_ID, NAME 이 두가지입니다.

SELECT 문에 이 2가지 항목을 써줍니다.

SELECT ANIMAL_ID,NAME 
FROM ANIMAL_INS;
ANIMAL_ID NAME
A349996 Sugar
A350276 Jewel
A350375 Meo
A352555 Harley

 

여기서 끝이 아니라

아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해달라고 했기 때문에 

아픈동물을 가려내는 WHERE문을 써주어야 합니다. 

 

INTAKE_CONDITION이 동물의 보호 시작 시 상태라고 했기때문에 

WHERE INTAKE_CONDITION='Sick'를 삽입하면 답을 얻어낼 수 있습니다.

SELECT 
    ANIMAL_ID,NAME
FROM 
    ANIMAL_INS
WHERE 
    INTAKE_CONDITION = 'Sick';
ANIMAL_ID NAME
A362707 Girly Girl
A367012 Miller
A381217 Cherokee
A387965 Dakota
A388360 Spider
A410330 Chewy

 

 

출처:[프로그래머스 코딩테스트 연습] - https://programmers.co.kr/learn/courses/30/lessons/59036

728x90