본문 바로가기
알고리즘

Programmers - 보호소에서 중성화한 동물(SQL)

by 장중앙 2021. 11. 4.

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

 

코딩테스트 연습 - 보호소에서 중성화한 동물

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

programmers.co.kr

 

풀이

보호소에 들어올 때에는 중성화되지 않았지만, 보호소에서 나갈 당시에는 중성화된 동물을 조회

중성화를 하지 않았다면 SEX_UPON_~의 값이 "Intack Male/Female"

            했다면 SEX_UPIN_~의 값이 "Sprayes Female" or "Neutered Male"이다.

들어올 때는 "Intack"를 포함해야하고 나갈때는 "Intack"을 포함하지 않으면 된다.

-> SEX_UPON_INTAKE LIKE 'Intact%' AND SEX_UPON_INTAKE NOT LIKE 'Intack%'

 

# JOIN 사용
SELECT i.ANIMAL_ID, i.ANIMAL_TYPE, i.NAME
FROM ANIMAL_INS i LEFT JOIN ANIMAL_OUTS o ON i.ANIMAL_ID = o.ANIMAL_ID
WHERE i.SEX_UPON_INTAKE LIKE 'Intact%' AND o.SEX_UPON_OUTCOME NOT LIKE 'Intact%'
ORDER BY i.ANIMAL_ID

#-----------------------------------

# JOIN 사용X
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID=B.ANIMAL_ID AND A.SEX_UPON_INTAKE like '%Intact%' AND B.SEX_UPON_OUTCOME not like '%Intact%'
ORDER BY A.ANIMAL_ID

 

댓글