[해커랭크 SQL] Weather Observation Station 15

hwan22·2022년 4월 14일

SQL 문제풀이

목록 보기
2/5

문제

LONG_W 칼럼 값을 출력하는 쿼리를 짜는데,
이 때 LAT_N의 값은 가장 클 때이고 LONG_W 칼럼 값의 조건으로 그 값이 137.2345보다 작아야한다.
그리고, LONG_W 출력 값을 소수점 아래 4자리까지 반올림하여 나타내는 쿼리를 작성해보자.


풀이

SELECT ROUND(long_w, 4)
FROM station 
WHERE lat_n < 137.2345 
ORDER BY lat_n DESC
LIMIT 1;

SQL의 경우 SELECT 다음으로 ORDER BY문이 실행이 된다.

그래서, 논리적으로는 SELECT절에 기술되지 않은 칼럼 기준 정렬하는 것이 맞지는 않다.

하지만, FROM 테이블에 있는 칼럼이라면 SELECT 절에 없어도 해당 칼럼을 ORDER BY절에 넣어 정렬 가능하다.
엑세스할 때 테이블 전체 칼럼메모리에 로드하기 때문이라고 한다.
(Oracle 역시 가능하다고 한다.)


SQL에서 반올림해주는 함수 ROUND(기존 숫자, 반올림해서 나타내고 싶은 소수점 자릿수)
ex) ROUND(3.44336, 4) = 3.4434


💡 문제 풀면서 헷갈렸던 부분

  • SELECT 절에 없는 칼럼 값으로 ORDER BY(정렬)에 쓸 수 있나..? 하는 의문이 있었음.

문제 링크

https://www.hackerrank.com/challenges/weather-observation-station-15/problem
(해당 문제 저작권은 HackerRank에 있습니다.)

profile
기록의 공간

0개의 댓글