[Coding Test] 최댓값 구하기

hailey·2021년 2월 22일
0

CodingTest

목록 보기
1/4

문제

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

NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE

가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

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

ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A399552Dog2013-10-14 15:38:00NormalJackNeutered Male
A379998Dog2013-10-23 11:42:00NormalDiscipleIntact Male
A370852Dog2013-11-03 15:04:00NormalKatieSpayed Female
A403564Dog2013-11-18 17:03:00NormalAnnaSpayed Female

가장 늦게 들어온 동물은 Anna이고, Anna는 2013-11-18 17:03:00에 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

시간
2013-11-18 17:03:00

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

풀이

여러 컬럼이 있지만 필요한 값은 가장 나중에 입력된 시간이다.
따라서 DATETIME을 내림차순으로 정리한 뒤 첫 번째 값을 출력하면 된다.

SELECT DATETIME
FROM ANIMAL_INS 
ORDER BY DATETIME DESC
LIMIT 1;

코드 실행 결과

DATETIME
2018-02-03 10:40:00

제대로 된 값을 뽑아냈는지 확인하기 위해 위의 코드에서 LIMIT 1을 제외하고 실행시켜봤다.
DATETIME
2018-02-03 10:40:00
2018-01-22 14:32:00
2017-10-25 17:17:00
2017-09-28 13:36:00
2017-08-13 13:50:00

그랬더니 위와 같은 결과가 나왔다. 제대로 했나 보다.

풀고 나서

평소 SQL문을 쓸 일이 거의 없다 보니 아주 간단한 쿼리문도 잘 기억이 나지 않았다. w3schools를 보고 예전에 공부했던 게 금방 떠오르긴 했지만, 기본적인 쿼리는 의식적으로 외워두자.

참고한 자료

https://www.w3schools.com/sql/
https://sosobaba.tistory.com/124

profile
옳고 그름을 고민합니다

0개의 댓글