프로그래머스 - 최솟값 구하기

윤민선·2026년 6월 29일

프로그래머스

목록 보기
29/67

문제 설명

ANIMAL_INS 테이블에서 가장 먼저 들어온 동물의 보호 시작일을 조회하는 문제이다.

테이블주요 컬럼
ANIMAL_INSANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE

접근 방법

"가장 먼저 들어온" = 가장 작은 날짜값 = 최솟값을 구하는 문제이다. 이전에 풀었던 가격이 제일 비싼 식품의 정보 출력하기에서 서브쿼리로 최댓값을 구하고 그 값과 같은 행을 조회하는 패턴을 익혔기 때문에, MAXMIN으로 바꿔 그대로 적용하였다.

SELECT DATETIME FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)

서브쿼리가 먼저 실행되어 가장 작은 DATETIME 값을 반환하고, 메인쿼리에서 그 값과 같은 행을 조회하는 방식이다.

이 문제는 아래처럼 더 간결하게 쓸 수도 있다.

SELECT MIN(DATETIME) FROM ANIMAL_INS

DATETIME 값 자체만 필요할 때는 서브쿼리 없이 MIN()만으로 바로 뽑을 수 있다.

구체적으로 정리한 풀이 흐름:

  1. "가장 먼저 들어온" = 최솟값 → MIN(DATETIME)
  2. 서브쿼리로 최솟값을 구하고, WHERE DATETIME = (서브쿼리)로 해당 행 조회

최종 코드

SELECT DATETIME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)

0개의 댓글