[컴][DB] PostgreSQL 의 nth_value, lead, lag 함수



PostgreSQL 의 nth_value, lead, lag

nth_value, lead, lag 에 대한 예제를 통해 사용법을 익혀보자.

자세한 내용은 ref. 1 을 참고하도록 하자.


nth_value(date, 1)

date column 의 값을 보면서, 같은 date 값중에(partition by date) 1번째 값을 보여준다.

"같은 date" 끼리 묶고, 그 묶음별로 1번째 값을 그 묶음에 전부 적용한다.

SELECT date, nth_value(date,1) OVER (PARTITION BY date) FROM test_per;

nth_value(date, 2)

date column 의 값을 보면서, 같은 date 값중에(partition by date) 2번째 값을 보여준다. 없으면 null 을 반환한다.

SELECT date, nth_value(date,2) OVER (PARTITION BY date) FROM test_per;


lead(date, 1, '2000-01-01')

date column 의 값을 보면서, 같은 date 값중에(partition by date) 가장 마지막 값(lead(date, 1)) 을 '2000-01-01' 로 넣는다.

SELECT date, lead(date,1, '2000-01-01') OVER (PARTITION BY date) FROM test_per;


lag(date, 1, '2000-01-01')

date column 의 값을 보면서, 같은 date 값중에(partition by date) 가장 첫번째 값d(lag(date, 1)) 을 '2000-01-01' 로 넣는다.

"같은 date 끼리 묶음"을 만들고, 그 묶음에서 가장 첫번째 나오는 값에 '2000-01-01' 을 넣는다.
SELECT date, lag(date,1, '2000-01-01') OVER (PARTITION BY date) FROM test_per;





Reference

  1. PostgreSQL: Documentation: 9.4: Window Functions




댓글 없음:

댓글 쓰기