ANIMAL_INS 테이블에서 가장 먼저 들어온 동물의 보호 시작일을 조회하는 문제이다.
| 테이블 | 주요 컬럼 |
|---|---|
ANIMAL_INS | ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE |
"가장 먼저 들어온" = 가장 작은 날짜값 = 최솟값을 구하는 문제이다. 이전에 풀었던 가격이 제일 비싼 식품의 정보 출력하기에서 서브쿼리로 최댓값을 구하고 그 값과 같은 행을 조회하는 패턴을 익혔기 때문에, MAX → MIN으로 바꿔 그대로 적용하였다.
SELECT DATETIME FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)
서브쿼리가 먼저 실행되어 가장 작은 DATETIME 값을 반환하고, 메인쿼리에서 그 값과 같은 행을 조회하는 방식이다.
이 문제는 아래처럼 더 간결하게 쓸 수도 있다.
SELECT MIN(DATETIME) FROM ANIMAL_INS
DATETIME 값 자체만 필요할 때는 서브쿼리 없이 MIN()만으로 바로 뽑을 수 있다.
구체적으로 정리한 풀이 흐름:
MIN(DATETIME)WHERE DATETIME = (서브쿼리)로 해당 행 조회SELECT DATETIME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)