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처리해주었다.
참고문헌
-- 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;
내 풀이
- 보호소에 들어올 당시의 테이블과 보호소를 나갈 당시의 테이블을 비교하는 문제이다.
- ANIMAL_ID를 기준으로
INNER JOIN
을 실시했다.
- ANIMAL_ID를 기준으로
- 보호소에 들어올 당시에는 중성화가 되지 않았지만,
- ANIMAL_INS 테이블에서 SEX_UPON_INTAKE 컬럼의 값에 INTACT이 포함되는지
LIKE
함수를 사용하여 검사했다 - 혹시 몰라서 ANIMAL_INS 테이블에서 SEX_UPON_INTAKE 컬럼을 가져올 때
UPPER
함수를 사용하여 문자열을 전부 대문자로 바꿔주었다.
- ANIMAL_INS 테이블에서 SEX_UPON_INTAKE 컬럼의 값에 INTACT이 포함되는지
- 보호소를 나갈 당시 중성화가된.
- ANIMAL_OUTS 테이블을 대상으로 위와 똑같이 진행했다.
- 중성화를 의미하는 단어가 SPAYED와 NEUTERED라서 괄호로 묶고 OR처리해주었다.
참고문헌
JOIN. 코딩테스트 연습 - 보호소에서 중성화한 동물 | 프로그래머스 (programmers.co.kr). Programmers. (accessed Oct 16, 2021)
Ghost