프로그래머스 SQL

프로그래머스 보호소에서 중성화된 동물 ORACLE | 오라클

cosmohoo 2022. 1. 13. 14:55
반응형

문제설명

예시

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

ANIMAL_INS

ANIMAL_ID          ANIMAL_TYPE  DATETIME                     INTAKE_CONDITION NAME            SEX_UPON_INTAKE

A367438 Dog 2015-09-10 16:01:00 Normal Cookie Spayed Female
A382192 Dog 2015-03-13 13:14:00 Normal Maxwell 2 Intact Male
A405494 Dog 2014-05-16 14:17:00 Normal Kaila Spayed Female
A410330 Dog 2016-09-11 14:09:00 Sick Chewy Intact Female

ANIMAL_OUTS 

ANIMAL_ID          ANIMAL_TYPE  DATETIME                     INTAKE_CONDITION NAME           SEX_UPON_OUTCOME

A367438 Dog 2015-09-12 13:30:00 Cookie Spayed Female
A382192 Dog 2015-03-16 13:46:00 Maxwell 2 Neutered Male
A405494 Dog 2014-05-20 11:44:00 Kaila Spayed Female
A410330 Dog 2016-09-13 13:46:00 Chewy Spayed Female
  • Cookie는 보호소에 들어올 당시에 이미 중성화되어있었습니다.
  • Maxwell 2는 보호소에 들어온 후 중성화되었습니다.
  • Kaila는 보호소에 들어올 당시에 이미 중성화되어있었습니다.
  • Chewy는 보호소에 들어온 후 중성화되었습니다.

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

ANIMAL_ID                                                  ANIMAL_TYPE                              NAME

A382192 Dog Maxwell 2
A410330 Dog Chewy

 

 

-- 코드를 입력하세요
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE 1=1 
AND A.ANIMAL_ID = B.ANIMAL_ID
AND A.SEX_UPON_INTAKE NOT IN ('Spayed Female', 'Neutered Male') --중성화안된아이들
AND B.SEX_UPON_OUTCOME IN ('Spayed Female', 'Neutered Male') -- 중성화완료
ORDER BY 1 ASC;

 

=> 단순 JOIN문을 활용하면 되는 문제입니다. 

=> 중성화된 여성과 중성화된 남성은 영단어가 다릅니다.

=> INS의 상태에서는 중성화되어있지 않아야 하며, OUTS의 상태에서는 중성화되어있어야 합니다. 

 

 

반응형