SQL

[SQuizL Post-Quiz] LAST_VALUE 241216

DSDiary 2024. 12. 16. 21:15
728x90
반응형
SMALL
SELECT 
    LAST_VALUE(st_dt) 
    OVER (
        ORDER BY st_dt 
        ROWS BETWEEN CURRENT ROW AND 9999 FOLLOWING
    ) 
FROM 
    fuji_activity;

 

이 SQL 구문은 fuji_activity 테이블에서 st_dt 열의 값을 기준으로 최신값을 가져오는 쿼리입니다.
여기서 LAST_VALUE 함수와 윈도우 함수(OVER)가 함께 사용됩니다.

 

 

    LAST_VALUE(st_dt) 

 

현재 윈도우 범위에서 st_dt 열의 마지막 값을 반환합니다.

 

 

    OVER (
        ORDER BY st_dt 
        ROWS BETWEEN CURRENT ROW AND 9999 FOLLOWING
    ) 
  • ORDER BY st_dt : st_dt 열을 기준으로 정렬합니다.
  • ROWS BETWEEN CURRENT ROW AND 9999 FOLLOWING : 현재 행부터 이후 9999개의 행까지를 윈도우 범위로 지정합니다.

 

결과적으로, 현재 행부터 이후의 모든 값 중 마지막 st_dt 값을 반환합니다.

 

 

 

하지만 이 구문은 범위(ROWS BETWEEN CURRENT ROW AND 9999 FOLLOWING)가 비효율적일 수 있습니다.
일반적으로 RANGE 또는 다른 접근 방식을 사용하는 것이 더 나을 수 있습니다.

728x90
반응형
LIST