본문 바로가기

방법/알고리즘&코딩 테스트

[Programmers] 오랜 기간 보호한 동물(2) MySQL, Oracle

https://programmers.co.kr/learn/courses/30/lessons/59411

 

코딩테스트 연습 - 오랜 기간 보호한 동물(2)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

Oracle

SELECT ANIMAL_ID, NAME
    FROM (SELECT ai.ANIMAL_ID, ai.NAME
        FROM ANIMAL_INS ai, ANIMAL_OUTS ao
        WHERE ai.ANIMAL_ID = ao.ANIMAL_ID 
        ORDER BY ao.DATETIME - ai.DATETIME DESC)
    WHERE ROWNUM <= 2

1. ANIMAL_INS와 ANIMAL_OUTS JOIN하기

 

2. 오랜 기간(outs.DATETIME - ins.DATETIME)을 기준으로  내림차순 정렬하기

    값이 클수록 오랜 기간 보호소에 있었던 것

 

3. 2개만 보여주기 위해 ROWNUM 이용하기

 

 

MySQL

SELECT ai.ANIMAL_ID, ai.NAME
    FROM ANIMAL_INS ai, ANIMAL_OUTS ao
    WHERE ai.ANIMAL_ID = ao.ANIMAL_ID 
    ORDER BY ao.DATETIME - ai.DATETIME DESC
    LIMIT 2

1, 2. 동일

3. 2개만 보여주기 위해 LIMIT 이용하기