프로그래머스 - 보호소에서 중성화한 동물

dev-swd·2021년 1월 16일
0

sql practice

목록 보기
4/5
post-thumbnail

@문제

보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.

문제에 대한 자세한 설명은 요기 클릭!


풀이법

보호소에 들어온 동물의 정보를 담는 테이블 ANIMAL_INS 에서 중성화를 확인할 수 있는 컬럼은 SEX_UPON_INTAKE

입양되어 나간 동물의 정보를 담는 테이블 ANIMAL_OUTS 에서 중성화를 확인할 수 있는 컬럼은 SEX_UPON_OUTCOME

두 컬럼 다 중성화 여부와 성별 정보가 같이 담겨있다.

    1. 먼저 ANIMAL_INS 테이블에서 중성화 되지 않은 동물의 레코드를 찾는다.
    1. 1에서 취득한 레코드와, ANIMAL_OUTS 테이블을 이너 조인한다.
    1. 이너 조인하면서 ANIMAL_OUTS 테이블의 컬럼 SEX_UPON_OUTCOMEIntact 라는 단어가 포함되지 않은 레코드를 찾는다.

작성한 답은 아래와 같다.

-- 코드를 입력하세요
SELECT
    OUTS.ANIMAL_ID,
    OUTS.ANIMAL_TYPE,
    OUTS.NAME
FROM
    ANIMAL_OUTS AS OUTS
INNER JOIN
    (
      SELECT
          ANIMAL_ID
      FROM
          ANIMAL_INS
      WHERE
        SEX_UPON_INTAKE LIKE 'Intact%'
    ) AS INTACT
ON
    OUTS.ANIMAL_ID = INTACT.ANIMAL_ID
WHERE
    NOT OUTS.SEX_UPON_OUTCOME LIKE 'Intact%'
ORDER BY
    OUTS.ANIMAL_ID ASC;

더 나은 방법이 있거나, 새로운 접근이 있다면 가감없이 댓글로 남겨주시면 감사하겠습니다..!

profile
개발을 취미로 할 수 있는 그 때 까지

0개의 댓글