SQL/프로그래머스

[프로그래머스/SQL] 루시와 엘라 찾기(MySQL)

류진주 2021. 11. 6. 14:57

https://programmers.co.kr/learn/courses/30/lessons/59046

 

코딩테스트 연습 - 루시와 엘라 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

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

동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.

예시

이때 결과는 아이디 순으로 조회해주세요. 예를 들어 ANIMAL_INS 테이블이 다음과 같다면

ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A373219 Cat 2014-07-29 11:43:00 Normal Ella Spayed Female
A377750 Dog 2017-10-25 17:17:00 Normal Lucy Spayed Female
A353259 Dog 2016-05-08 12:57:00 Injured Bj Neutered Male
A354540 Cat 2014-12-11 11:48:00 Normal Tux Neutered Male
A354597 Cat 2014-05-02 12:16:00 Normal Ariel Spayed Female

SQL문을 실행하면 다음과 같이 나와야 합니다.

ANIMAL_ID NAME SEX_UPON_INTAKE
A373219 Ella Spayed Female
A377750 Lucy Spayed Female

[풀이]

동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 아이디 순으로 조회해야 한다. 

 

1. 동물 보호소에 들어온 동물이 들어있는 ANIMAL_INS 테이블에서 값을 조회할 것이므로 FROM 절에 ANIMAL_INS를 작성한다.

 

2. 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물은 ANIMAL_INS 테이블의 NAME이  Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물을 찾으면 된다. 이름은 문자열 타입이므로 "" 안에 넣어서 비교해야 한다.

또한 Lucy이거나 Ella이거나 Pickle이거나 Rogan이거나 Sabrina이거나 Mitty인 동물이므로 OR을 이용해야 한다.

따라서 WHERE절에서 NAME="Lucy" NAME="Ella" NAME = "Pickle" NAME = "Rogan" NAME = "Sabrina" NAME = "Mitty"를 OR로 연결한다.

WHERE NAME = "Lucy" OR NAME = "Ella" OR NAME = "Pickle" OR NAME = "Rogan" OR NAME = "Sabrina" OR NAME = "Mitty"

 

3. 조건을 만족하는 동물의 아이디, 이름, 성별 및 중성화 여부를 조회할 것이므로 SELECT절에는 ANIMAL_ID, NAME, SEX_UPON_INTAKE를 작성한다.

 

4. 아이디 순으로 조회할 것이므로 ORDER BY 절에 ANIMAL_ID를 작성한다.

 

[코드]

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME = "Lucy" OR NAME = "Ella" OR NAME = "Pickle" OR NAME = "Rogan" OR NAME = "Sabrina" OR NAME = "Mitty"
ORDER BY ANIMAL_ID