LAST_VALUE 함수

LAST_VALUE 함수

Apache Pinot의 LAST_VALUE 윈도우 함수는 윈도우 안의 마지막 행에서 값을 반환해요. 파티션별로 마지막에 오는 값을 알고 싶거나, IGNORE NULLS로 누락 값을 채워 넣고 싶을 때 유용해요.

출처: 문서

본문

LAST_VALUE 함수는 윈도우 안의 마지막 행에서 값을 반환하는 윈도우 함수예요.

시그니처

LAST_VALUE(expression) [IGNORE NULLS | RESPECT NULLS] OVER ()

기본 동작은 RESPECT NULLS예요. IGNORE NULLS 옵션을 지정하면 함수는 각 윈도우에서 마지막 null이 아닌 행을 반환해요 (그런 행이 없으면 null).

예시 1

이 예시는 선수의 마지막 해에 출전한 경기 수를 계산해요.

SELECT playerName,
  yearID,
  numberOfGames,
  LAST_VALUE(numberOfGames) OVER (
    PARTITION BY playerName
    ORDER BY yearID ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
  )
FROM baseballStats;

출력:

playerName yearID numberOfGames EXPR$3
p1 2000 10 12
p1 2001 15 12
p1 2002 12 12
p2 1990 120 124
p2 1991 124 124
p3 2006 30 15
p3 2007 25 15
p3 2009 20 15
p3 2010 15 15

예시 2

이 예시는 IGNORE NULLS 옵션을 이용해 (null로 표현되는) 누락 값들을 "gapfill"로 채워요. 여기서는 기본 윈도우 프레임인 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW를 사용한다는 점을 주의하세요.

SELECT ts,
  reading,
  LAST_VALUE(reading) IGNORE NULLS OVER (
    ORDER BY ts
  ) AS imputedReading
FROM telemetryData;

출력:

ts reading imputedReading
2014-01-01 00:00:00.0 10.0 10.0
2014-01-01 00:30:00.0 12.0 12.0
2014-01-01 01:00:00.0 12.5 12.5
2014-01-01 01:30:00.0 null 12.5
2014-01-01 02:00:00.0 null 12.5
2014-01-01 02:30:00.0 11.5 11.5
2014-01-01 03:00:00.0 null 11.5
2014-01-01 03:30:00.0 11.0 11.0

더 알아보기 (Learn more)