[프로그래머스] 오랜 기간 보호한 동물(2)
문제
이해
입력
ANIMAL_INS
- 타입:
테이블
- 의미: 동물 보호소에 들어온 동물의 정보
-
스키마:
NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE
- 타입:
ANIMAL_OUTS
- 타입:
테이블
- 의미: 동물 보호소에서 입양 보낸 동물의 정보
-
스키마:
NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE
- 타입:
출력
- 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회
조건
- 보호 기간이 긴 순으로 조회한다.
예시
입력
ANIMAL_INS
ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
---|---|---|---|---|---|
A354597 | Cat | 2014-05-02 12:16:00 | Normal | Ariel | Spayed Female |
A362707 | Dog | 2016-01-27 12:27:00 | Sick | Girly Girl | Spayed Female |
A370507 | Cat | 2014-10-27 14:43:00 | Normal | Emily | Spayed Female |
A414513 | Dog | 2016-06-07 09:17:00 | Normal | Rocky | Neutered Male |
ANIMAl_OUTS
ANIMAL_ID | ANIMAL_TYPE | DATETIME | NAME | SEX_UPON_OUTCOME |
---|---|---|---|---|
A354597 | Cat | 2014-06-03 12:30:00 | Ariel | Spayed Female |
A362707 | Dog | 2017-01-10 10:44:00 | Girly Girl | Spayed Female |
A370507 | Cat | 2015-08-15 09:24:00 | Emily | Spayed Female |
출력
ANIMAL_ID | NAME |
---|---|
A362707 | Girly Girl |
A370507 | Emily |
접근
입양을 간 동물
중에서 조회해야 하므로 ANIMAL_INS와 ANIMAL_OUTS의 JOIN을 구한다.보호 기간이 긴 순
으로 조회하기 위해서 보호 시작일과 입양일의 차이로 정렬한다.- 보호 기간이 가장 긴 두 마리를 선택한다.
구현
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A JOIN ANIMAL_OUTS B USING(ANIMAL_ID)
ORDER BY TIMESTAMPDIFF(DAY, A.DATETIME, B.DATETIME) DESC
LIMIT 2
댓글남기기