조건에 맞는 서경(LONG_W) 값 찾기 SQL 문제 해결하기

오늘은 SQL을 이용해 특정 조건에 맞는 위도와 경도 값을 찾는 문제를 해결하는 방법을 소개하려고 합니다. STATION이라는 테이블이 주어지고, 주어진 조건에 따라 서경(LONG_W) 값을 찾는 문제를 풀어보겠습니다.

 

1. 테이블 설명

STATION 테이블에는 다음과 같은 열이 포함되어 있습니다:

FieldType

ID NUMBER
CITY VARCHAR2(21)
STATE VARCHAR2(2)
LAT_N NUMBER
LONG_W NUMBER

 

 

  • ID : 고유 식별자
  • CITY : 도시 이름
  • STATE : 주(state) 약자
  • LAT_N : 북위 (위도)
  • LONG_W : 서경 (경도)

이 테이블을 이용해 특정 위도에 맞는 경도를 찾아야 합니다.

2. 문제 이해

주어진 문제는 다음과 같은 조건을 포함하고 있습니다.

  • 조건: LAT_N(북위)의 최소값이 38.7780보다 큰 레코드를 찾습니다. 즉, 38.7780보다 큰 값들 중 가장 작은 북위 값에 해당하는 레코드를 찾으라는 뜻입니다.
  • 결과: 찾은 레코드의 LONG_W(서경) 값을 소수점 네 자리까지 반올림하여 출력합니다.

3. 해결 방법

문제를 해결하기 위해 아래 단계대로 접근하겠습니다.

  1. 조건에 맞는 최소 LAT_N 값 찾기
    LAT_N > 38.7780 조건을 만족하는 값 중에서 가장 작은 LAT_N 값을 구합니다.
  2. 찾은 최소 LAT_N 값의 LONG_W 구하기
    조건에 맞는 최소 LAT_N을 가진 레코드에서 LONG_W 값을 구한 뒤, 소수점 네 번째 자리까지 반올림합니다.

4. SQL 쿼리 작성

아래는 문제를 해결하기 위한 SQL 쿼리입니다

SELECT ROUND(LONG_W, 4)
FROM STATION
WHERE LAT_N = (SELECT MIN(LAT_N) FROM STATION WHERE LAT_N > 38.7780);

 

 

5. 쿼리 설명

  • 조건부 최소값 찾기
    SELECT MIN(LAT_N) FROM STATION WHERE LAT_N > 38.7780: LAT_N이 38.7780보다 큰 값들 중 가장 작은 값을 찾습니다.
  • 조건에 맞는 LONG_W 선택
    WHERE LAT_N = (SELECT MIN(LAT_N) FROM STATION WHERE LAT_N > 38.7780): 위에서 구한 최소 LAT_N 값과 일치하는 레코드의 LONG_W 값을 선택합니다.
  • 결과 반올림
    ROUND(LONG_W, 4): 최종 결과값을 소수점 네 자리까지 반올림합니다.

결론

이렇게 하면 조건을 만족하는 최소 북위에 해당하는 서경 값이 네 자리 반올림된 형태로 반환됩니다. 이 쿼리 형식을 익혀두면, 다양한 조건의 데이터에서 특정 값을 쉽게 추출할 수 있어 SQL 문제 풀이에 큰 도움이 될 것입니다!

서브쿼리도 어떻게 써야하는지 다시 한번 해봐야겠다.

'SQL' 카테고리의 다른 글

Weather Observation Station 5  (0) 2024.12.04
Weather Observation Station 16  (0) 2024.10.29
Weather Observation Station 15  (0) 2024.10.23
Weather Observation Station 14  (0) 2024.10.22
Weather Observation Station 13  (0) 2024.10.20

+ Recent posts