Analisis Deret Waktu di PostgreSQL
Jasmin Ludolf
Content Developer, DataCamp

ROWS BETWEENUNBOUNDED PRECENDING AND CURRENT ROW: lihat semua baris sebelum baris saat iniSELECT
id,
views,
AVG(views) OVER(
PARTITION BY id
ORDER BY ts
ROWS BETWEEN
UNBOUNDED PRECEDING AND CURRENT ROW)
AS running_avg_views
FROM dc_news_fact;
ROWS BETWEEN 4 PRECEDING AND CURRENT ROW
(1) Baris sebelumnya
(2) Baris sebelumnya
(3) Baris sebelumnya
(4) Baris sebelumnya
(5) Baris saat ini
SELECT id, ts, views,AVG(views) OVER (ORDER BY tsROWS BETWEEN 4 PRECEDING AND CURRENT ROW) AS moving_average_fiveFROM dc_news_fact;
| id| ts|views|moving_average_five|
|-----|-------------------|-----|-------------------|
|12121|2015-12-27 17:14:16| null| null|
|12121|2015-12-27 17:34:16| 23| 23.00000000000000|
|12121|2015-12-27 17:54:16| 10| 16.50000000000000|
|12121|2015-12-27 18:14:16| 8| 13.66666666666666|
|12121|2015-12-27 18:34:16| 4| 11.25000000000000|
|12121|2015-12-27 18:54:16| 7| 10.40000000000000|
|12121|2015-12-27 19:14:16| 0| 5.8000000000000000|
...
ROWS BETWEEN 5 PRECEDING AND 1 PRECEDINGSELECT
stock_symbol,
day,
daily_avg,
AVG(daily_avg) OVER(
PARTITION BY stock_symbol
ORDER BY day
ROWS BETWEEN 5 PRECEDING AND 1 PRECEDING
) AS avg_prev_five
FROM daily_stock_averages
ORDER BY stock_symbol, day;
Analisis Deret Waktu di PostgreSQL