컴퓨터 과학/데이터베이스
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번째 쿼리는 모두 성공적으로 돌아갔다
두 번째와 세 번째 쿼리에서 어떤 차이점이 있고 무엇이 더 효율적인지 생각해보자.
답은 세 번째 쿼리가 일반적으로 더 효율적인데 그 이유는 '인덱스' 때문이다. 과연 두 쿼리가 테이블에 몇번 엑세스 하는지 천천히 고민해보면 답이 되지 않을까 생각한다.
반응형