본문 바로가기
문제풀이/SQL(My sql)

[문제풀이] 프로그래머스 - 보호소에서 중성화한 동물

by kime2 2024. 6. 25.
출처
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

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

 

문제에 대한 해석

-- 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 
-- 아이디와 생물 종, 이름
-- 정렬 : 아이디 

 

풀이(MYSQL)

with intack as (
    select animal_id
    from ANIMAL_INS 
    where SEX_UPON_INTAKE in('Intact Male','Intact Female')
    ) -- 보호시점에는 성별이 'Intact Male','Intact Female'중에 하나라도 포함된 경우
select o.animal_id, animal_type, name
from ANIMAL_OUTS o join intack i 
on o.animal_id = i.animal_id 
where SEX_UPON_OUTCOME in('Spayed Female', 'Neutered Male') -- 입양시점에는 성별이 'Spayed Female', 'Neutered Male'중에 하나라도 포함된 경우
order by o.animal_id

 

다른사람 풀이

SELECT  AI.ANIMAL_ID
        ,AI.ANIMAL_TYPE
        ,AI.NAME
  FROM  ANIMAL_INS AS AI
  JOIN  ANIMAL_OUTS AS AO
    ON  AI.ANIMAL_ID = AO.ANIMAL_ID
 WHERE  AI.SEX_UPON_INTAKE LIKE 'INTACT%' -- 보호시에는 원래의 성별이지만
        AND AO.SEX_UPON_OUTCOME NOT LIKE 'INTACT%' --입양시점에는 중성화 상태인 
 ORDER
    BY  ANIMAL_ID

배운점

좀더 직관적인 퀴리 고민