level3_오랜 기간 보호한 동물(2)

2024. 6. 25. 21:39MYSQL_알고리즘(코딩테스트)/level3

 

내가 제출한 코드

SELECT I.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I
    JOIN ANIMAL_OUTS O
    ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2;
  • SELECT문
    • I.ANIMAL_ID(입소테이블의 동물 ID)와 O.NAME(출소 테이블의 동물이름) 열을 선택한다.
  • JOIN절
    • ANIMAL_INS : ANIMAL_INS 테이블을 I라는 별칭으로 사용한다.
    • ANIMAL_OUTS : ANIMAL_OUTS 테이블을 O라는 별칭으로 사용한다.
    • ON I.ANIMAL_ID = O.ANIMAL_ID :  ANIMAL_INS 테이블의 ANIMAL_ID와 ANIMAL_OUTS 테이블의 ANIMAL_ID가 일치하는 행을 결합한다. 즉, 같은 동물의 입소 및 출소 정보를 결합한다.
  • ORDER BY절
    • O.DATETIME - I.DATETIME : 출소 날짜(O.DATETIME)에서 입소 날짜(I.DATETIME)를 뺀 값으로 계산된 머무는 기간을 기준으로 정렬한다.
    • DESC : 내림차순으로 정렬하여 가장 오래 머문 동물부터 정렬한다.
    • LIMIT 2 : 가장 오래 머문 두 마리의 동물만 선택한다.