본문 바로가기
Language/Java

[Programmers | ORACLE | SUM, MAX, MIN 문제 풀이] 최솟값 구하기 - Solution with MIN

by ㅇ달빛천사ㅇ 2024. 6. 4.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA

🎱 최솟값 구하기

🏷 Topic : SELECT MIN



문제 설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.

ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.


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

동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.


예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면


ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A399552 Dog 2013-10-14 15:38:00 Normal Jack Neutered Male
A379998 Dog 2013-10-23 11:42:00 Normal Disciple Intact Male
A370852 Dog 2013-11-03 15:04:00 Normal Katie Spayed Female
A403564 Dog 2013-11-18 17:03:00 Normal Anna Spayed Female

가장 먼저 들어온 동물은 Jack이고, Jack은 2013-10-14 15:38:00에 들어왔습니다.

따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.


시간
2013-10-14 15:38:00

※ 컬럼 이름(위 예제에서는 "시간")은 일치하지 않아도 됩니다.


본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.


✔ Solution with MIN

SELECT MIN(DATETIME) AS "시간"
FROM ANIMAL_INS;
실행 결과

실행 결과


💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제의 Point : 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL문을 작성하시오.

가장 먼저 들어 온 것은 보호 시작일 이 가장 빠르다는(작다는) 의미이다.
해당 칼럼의 최솟값을 가져오는 집계함수 MIN을 사용하자.
DATETIME칼럼에 MIN을 사용하여 DATETIME중 가장 작은 값을 불러오자.
칼럼명이 보기 좋게 "시간"이라고 별칭(Alias)을 주자.

SELECT MIN(DATETIME) AS "시간" 
FROM ANIMAL_INS;

🎉 오늘의 SQL 코드카타 해결! 🎉


💬 무엇을 새롭게 알았는지

집계함수를 꼭 GROUP BY, HAVING 절에서만 쓸 수 있는 것은 아니구나.

SELECT절에서도 집계함수를 사용할 수 있구나.

728x90


Top