[SQL] 오랜 기간 보호한 동물(2) in programmers

Heejeong Choi·2021년 12월 15일
0

해당 문제 링크 : 오랜 기간 보호한 동물(2)


ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.

문제

입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.

작성한 답변

SELECT INS.ANIMAL_ID, INS.NAME FROM ANIMAL_INS INS, ANIMAL_OUTS OUTS
WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID ORDER BY OUTS.DATETIME-INS.DATETIME DESC LIMIT 2
  1. 문제 파악
    -> 우선 문제에서 나온대로, 보호기간을 조회하여야 하기 때문에 OUTS 테이블의 DATETIME에서 INS 테이블의 DATETIME 차이를 구하여야한다. DATETIME이라는 각각의 테이블에서 동일한 Alias를 갖고 있기 때문에 INS와 OUTS라는 별칭을 갖게 해두었다. 생각보다 어렵지 않은 문제였다.
  2. 결과
    -> 정답 !
profile
Welcome to my velog! I love learning something new to build up my ability in development field. I don't think it is shame not to know, but it is shame to pretend to know about something you don't know.

0개의 댓글