INNER JOIN 을 사용해서 푸는 문제이다.

INNER JOIN 은 익숙하기 때문에 따로 설명은 하지 않겠다.

다만 DATETIME 의 차이를 구할 때, 형태가 다르다면 TO_CHAR로 형태를 맞추고 같다면 바로 빼주면 된다.

기본단위는 일 이며 시간이 추가되면 소숫점이 나오므로 ROUND나 CEIL, TRUNC를 사용하여 처리해야한다.

 

SELECT * FROM (
    SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I, ANIMAL_OUTS O 
    WHERE I.ANIMAL_ID = O.ANIMAL_ID ORDER BY O.DATETIME - I.DATETIME DESC
) WHERE ROWNUM <= 2;

 

+ Recent posts