JOIN - 보호소에서 중성화한 동물

1. 보호소에서 중성화한 동물

A. 문제

위 프로그래머스 사이트에 접속하여 문제를 확인해주세요.

B. 내 답안


-- Oracle

SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME  
FROM ANIMAL_INS INS JOIN ANIMAL_OUTS OUTS ON (INS.ANIMAL_ID = OUTS.ANIMAL_ID) 
WHERE UPPER(INS.SEX_UPON_INTAKE) LIKE 'INTACT%'  
 AND (UPPER(OUTS.SEX_UPON_OUTCOME) LIKE 'SPAYED%'  
 OR  
 UPPER(OUTS.SEX_UPON_OUTCOME) LIKE 'NEUTERED%')  
ORDER BY ANIMAL_ID;

a. 회고

내 풀이

  • 보호소에 들어올 당시의 테이블과 보호소를 나갈 당시의 테이블을 비교하는 문제이다.
    • ANIMAL_ID를 기준으로 INNER JOIN을 실시했다.
  • 보호소에 들어올 당시에는 중성화가 되지 않았지만,
    • ANIMAL_INS 테이블에서 SEX_UPON_INTAKE 컬럼의 값에 INTACT이 포함되는지 LIKE 함수를 사용하여 검사했다
    • 혹시 몰라서 ANIMAL_INS 테이블에서 SEX_UPON_INTAKE 컬럼을 가져올 때 UPPER 함수를 사용하여 문자열을 전부 대문자로 바꿔주었다.
  • 보호소를 나갈 당시 중성화가된.
    • ANIMAL_OUTS 테이블을 대상으로 위와 똑같이 진행했다.
    • 중성화를 의미하는 단어가 SPAYED와 NEUTERED라서 괄호로 묶고 OR처리해주었다.

참고문헌

JOIN. 코딩테스트 연습 - 보호소에서 중성화한 동물 | 프로그래머스 (programmers.co.kr). Programmers. (accessed Oct 16, 2021)

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.