# 연습문제 - 오랜 기간 보호한 동물(2)

- Author: @mildsalmon
- Published: 2021-10-11
- Updated: 2021-10-16
- Source: http://blex.me/@mildsalmon/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9C-%EC%98%A4%EB%9E%9C-%EA%B8%B0%EA%B0%84-%EB%B3%B4%ED%98%B8%ED%95%9C-%EB%8F%99%EB%AC%BC2
- Tags: 프로그래머스, 코딩테스트, 문제, 오라클, sql

---

# 1. 오랜 기간 보호한 동물(2)

### A. 문제

위 프로그래머스 사이트에 접속하여 문제를 확인해주세요.

### B. 내 답안

```SQL

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

```

##### a. 회고

> 내 풀이

- inner join을 사용하고 date에 뺄셈 연산을 사용하여 보호 기간을 계산해서 정렬하였다.

> 반성

- String, Date 라서 그냥 문제를 클릭했는데, 풀다보니 조인이 필요하더라. 이제 조인은 sql-99 표준 문법인 `join on`을 사용해서 풀자.

# 참고문헌

String, Date. [코딩테스트 연습 - 오랜 기간 보호한 동물(2) | 프로그래머스 (programmers.co.kr)](https://programmers.co.kr/learn/courses/30/lessons/59411). Programmers. (accessed Oct 11, 2021)
