HackerRank Weather Observation Station 15
STATION 테이블에서 LAT_N 값이 137.2345보다 작은 행들 중, 가장 큰 LAT_N 값을 갖는 행의 LONG_W 값을 구하는 문제이다.
결과는 소수점 아래 넷째 자리까지 반올림해야 한다.
먼저 서브 쿼리로 LAT_N < 137.2345을 만족하는 행들 중 가장 큰 LAT_N 값을 구한다.
SELECT MAX(LAT_N)
FROM STATION
WHERE LAT_N < 137.2345
다음으로 이 값과 LAT_N 값이 일치하는 행의 LONG_W 값을 조회하고, ROUND()로 LONG_W 값을 소수점 넷째 자리까지 반올림하면 된다.
-- 서브 쿼리
SELECT
ROUND(LONG_W, 4)
FROM
STATION
WHERE
LAT_N = (
SELECT MAX(LAT_N)
FROM STATION
WHERE LAT_N < 137.2345
);
ORDER BY 절과 LIMIT 절을 사용하면 서브 쿼리 없이도 풀 수 있다.
-- ORDER BY 절 및 LIMIT 절
SELECT ROUND(LONG_W, 4)
FROM STATION
WHERE LAT_N < 137.2345
ORDER BY LAT_N DESC
LIMIT 1;