오랜 기간 보호한 동물(1)
- ANIMAL_INS 에서 ANIMAL_OUTS 를 LEFT JOIN 해준 뒤,
- ANIMAL_OUTS 의 ANIMAL_ID 값이 NULL 인 부분을 가지고 와서
- 오래된 순으로 ORDER BY 뒤 LIMIT 3 을 걸어주면 된다.
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME LIMIT 3;
오랜 기간 보호한 동물(2)
- INNER JOIN 으로 ANIMAL_INS 와 ANIMAL_OUTS 를 합친다.
- ANIMAL_OUTS.DATETIME 에서 ANIMAL_INS.DATETIME 를 뺀 값을 기준으로 ORDER BY 한다.
- 두 값을 뺀 값이 가장 높은 것이, 보호소에 있었던 시간이 가장 길기 때문에 DESC 으로 정렬한다.
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY (B.DATETIME - A.DATETIME) DESC LIMIT 2;
보호소에서 중성화한 동물
- 두 테이블을 OUTER JOIN 한 뒤 입양할 때와 입양보내졌을 때의 SEX 상태가 다른걸 찾으면 된다.
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE <> B.SEX_UPON_OUTCOME
ORDER BY A.ANIMAL_ID;