본문 바로가기
DB/문제풀이

[프로그래머스] 최댓값 구하기 -LV.1

by 쬑께께 2022. 12. 15.

최댓값 구하기의 문제는 다음과 같다.

 

 

문제를 살펴보면 어제 푼

상위 n개의 레코드와 상당히 유사함을 알 수 있다.

 

해당 문제를 풀기 위해서는

1. DATETIME을 출력

2. 가장 늦게 들어온 동물의 DATETIME 출력

순으로 접근해야한다.

 

그럼 우선

SELECT문을 통해 

DATETIME을 가져와보겠다.

 

여기서 AS라는 명령어를 쓴 것을 볼 수 있는데

이 AS 명령어는 별칭 지정 명령어

쿼리 또는 레코드의 이름을 지정할 수 있다.

 

 

다음으로 

가장 늦게 들어온 동물의 DATETIME만이

출력되도록 해보겠다.

 

상위 n개의 레코드 문제와 같이 

2가지 방법으로 접근해보도록 하겠다,

 

 

우선 LIMIT 명령어를 통해 접근해보겠다.

 

DATETIME을 내림차순으로 정렬한 후,

그 중 하나의 값만을 가져오는 것이니

ORDER BY문을 통해 접근해야한다.

한 개의 값을 가져와야 하니 LIMIT 1 을 입력해주었다.

 

 

두 번째 방법은 서브쿼리를 이용하는 것이다.

 

가장 최근에 들어온 DATETIME이 선택되어야 하기 때문에

MAX( ) 함수를 이용해야 하며,

해당 조건은 DATETIME에 걸려야 한다.

 

우선 가장 최근에 들어온 DATETIME을

선택하는 쿼리를 짜보면 다음과 같다.

 

그리고 이 쿼리문을 본 쿼리문에 붙여보겠다.

 

가장 최근에 들어온 동물을 찾아야 하니 

DATETIME으로 조건을 걸어야 한다.

우선 WHERE문으로 조건을 걸어주었다.

 

이제 여기다가 위에 작성한 서브 쿼리문을 붙이면 다음과 같다.

 

이제 LIMIT을 사용한 쿼리문과

서브 쿼리문을 사용한 쿼리문이

정답인지 확인해보겠다.

두 쿼리문 다 정답이다.