프로그래머스 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의 상태에서는 중성화되어있어야 합니다.
반응형