컴퓨터 과학/데이터베이스

HackerRank - SQL문제풀이

컴공카 2023. 10. 6. 21:50
반응형

select round (lat_n,4)
from(
    select *
    from station
    where LAT_N > 38.7780
    ) b
where LAT_N = min(b.lat_n);

==============================================================================

 

select ROUND(min(LAT_N),4) 

from station 

where LAT_N > 38.7780;
==============================================================================
SELECT round(lat_n,4)
FROM station
WHERE LAT_N = (SELECT MIN(LAT_N) FROM station WHERE LAT_N > 38.7780);

 

==============================================================================

 

3가지 쿼리는 같은 목적으로 사용했다.

첫 번째 쿼리는 오류가 등장했고, (왜등장했는지 생각해보자)

2,3번째 쿼리는 모두 성공적으로 돌아갔다

두 번째와 세 번째 쿼리에서 어떤 차이점이 있고 무엇이 더 효율적인지 생각해보자.

 

답은 세 번째 쿼리가 일반적으로 더 효율적인데 그 이유는 '인덱스' 때문이다.  과연 두 쿼리가 테이블에 몇번 엑세스 하는지 천천히 고민해보면 답이 되지 않을까 생각한다.

 

 

반응형