diff --git a/프로그래머스/4/59045. 보호소에서 중성화한 동물/README.md b/프로그래머스/4/59045. 보호소에서 중성화한 동물/README.md new file mode 100644 index 0000000..dfb0361 --- /dev/null +++ b/프로그래머스/4/59045. 보호소에서 중성화한 동물/README.md @@ -0,0 +1,232 @@ +# [level 4] 보호소에서 중성화한 동물 - 59045 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/59045) + +### 성능 요약 + +메모리: 0.0 MB, 시간: 0.00 ms + +### 구분 + +코딩테스트 연습 > JOIN + +### 채점결과 + +Empty + +### 제출 일자 + +2025년 03월 06일 10:52:31 + +### 문제 설명 + +

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE
+

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_IDANIMAL_INSANIMAL_ID의 외래 키입니다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_OUTCOMEVARCHAR(N)FALSE
+

보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.

+ +
예시
+ +

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

+ +

ANIMAL_INS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A367438Dog2015-09-10 16:01:00NormalCookieSpayed Female
A382192Dog2015-03-13 13:14:00NormalMaxwell 2Intact Male
A405494Dog2014-05-16 14:17:00NormalKailaSpayed Female
A410330Dog2016-09-11 14:09:00SickChewyIntact Female
+

ANIMAL_OUTS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPEDATETIMENAMESEX_UPON_OUTCOME
A367438Dog2015-09-12 13:30:00CookieSpayed Female
A382192Dog2015-03-16 13:46:00Maxwell 2Neutered Male
A405494Dog2014-05-20 11:44:00KailaSpayed Female
A410330Dog2016-09-13 13:46:00ChewySpayed Female
+ + +

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

+ + + + + + + + + + + + + + + + + + +
ANIMAL_IDANIMAL_TYPENAME
A382192DogMaxwell 2
A410330DogChewy
+
+ +

본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

+ +
+
+
    + +
  1. +

    중성화를 거치지 않은 동물은 성별 및 중성화 여부에 Intact, 중성화를 거친 동물은 Spayed 또는 Neutered라고 표시되어있습니다. 

    +
  2. + +
+
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git a/프로그래머스/4/59045. 보호소에서 중성화한 동물/보호소에서 중성화한 동물.sql b/프로그래머스/4/59045. 보호소에서 중성화한 동물/보호소에서 중성화한 동물.sql new file mode 100644 index 0000000..183d77a --- /dev/null +++ b/프로그래머스/4/59045. 보호소에서 중성화한 동물/보호소에서 중성화한 동물.sql @@ -0,0 +1,6 @@ +-- 코드를 입력하세요 +SELECT O.ANIMAL_ID, O.ANIMAL_TYPE, O.NAME +FROM ANIMAL_OUTS AS O +JOIN ANIMAL_INS AS I ON O.ANIMAL_ID=I.ANIMAL_ID +WHERE I.SEX_UPON_INTAKE LIKE 'Intact%' AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%' OR O.SEX_UPON_OUTCOME LIKE 'Neutered%') +ORDER BY O.ANIMAL_ID ASC \ No newline at end of file