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

김준석·2024년 2월 4일

코딩테스트 - SQL

목록 보기
52/96

문제

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

  • ins에는 중성화 x (Intact)
  • outs에서는 중성화 o (Spayed 또는 Neutered)

코드

WITH not_n AS( #ins에서 중성화를 하지않은 조인테이블
    SELECT
        ins.ANIMAL_ID,
        ins.ANIMAL_TYPE,
        ins.NAME,
        ins.SEX_UPON_INTAKE,
        outs.SEX_UPON_OUTCOME
    FROM
        ANIMAL_INS ins
        INNER JOIN ANIMAL_OUTS outs
            ON ins.ANIMAL_ID=outs.ANIMAL_ID
    WHERE 1=1
        AND LEFT(ins.SEX_UPON_INTAKE, 6) = 'Intact'
)
SELECT
    ANIMAL_ID,
    ANIMAL_TYPE,
    NAME
FROM
    not_n
WHERE 1=1
    AND LEFT(not_n.SEX_UPON_OUTCOME,6) ='Spayed'
    OR LEFT(not_n.SEX_UPON_OUTCOME,8) = 'Neutered'
ORDER BY
    ANIMAL_ID

풀이

먼저 ins에서 중성화를 하지않은 동물들을 필터링 해서 CTE 작성 후
해당 CTE에서 outs에서 중성화를 한 동물 필터링.

0개의 댓글