본문 바로가기

프로그래머스(Oracle)

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

728x90

코드 힌트

  1. 동물 입양 및 중성화 상태 매칭
    • ANIMAL_INS 테이블에서 동물이 입양될 때 중성화되지 않은 상태(SEX_UPON_INTAKE LIKE 'Intact%')인 데이터를 찾고, ANIMAL_OUTS 테이블에서 해당 동물이 입양된 후 중성화된 상태(SEX_UPON_OUTCOME LIKE 'Spayed%' 또는 'Neutered%')로 기록된 데이터를 조인합니다.
  2. 동물 고유 ID 기준 정렬
    • 결과는 ANIMAL_ID를 기준으로 정렬되며, 동물의 ID, 종류, 그리고 이름을 반환합니다.
  3. 조건을 충족하는 데이터만 반환
    • 입양 시에는 중성화되지 않은 동물이었으나, 입양 후 중성화된 동물만 필터링하여 목록에 표시됩니다.

 


정답은 더보기 클릭

더보기
더보기
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
  -- ANIMAL_INS 테이블에서 동물의 ID, 종류, 이름을 선택
  
  FROM ANIMAL_INS I 
  JOIN ANIMAL_OUTS O 
     ON I.ANIMAL_ID = O.ANIMAL_ID
     -- ANIMAL_INS와 ANIMAL_OUTS 테이블을 ANIMAL_ID 기준으로 JOIN
  
  WHERE I.SEX_UPON_INTAKE LIKE 'Intact%' 
    -- 입양 당시 중성화되지 않은 동물(SEX_UPON_INTAKE이 'Intact%'로 시작하는 경우)
    
    AND (O.SEX_UPON_OUTCOME LIKE 'Spayed%' 
         OR O.SEX_UPON_OUTCOME LIKE 'Neutered%')
         -- 입양 후 중성화된 동물만 선택 (SEX_UPON_OUTCOME이 'Spayed%' 또는 'Neutered%'로 시작하는 경우)
  
  ORDER BY ANIMAL_ID
  -- 결과를 ANIMAL_ID 기준으로 정렬
728x90