Time Series Analysis in PostgreSQL
Jasmin Ludolf
Content Developer, DataCamp
|values|running_average| |------|---------------| | 1| 1|
| 5| 3|
| 7| 4.33|
SELECT id, ts, views, AVG(views) OVER (ORDER BY ts) AS running_avg_views
FROM dc_news_fact WHERE id = '12121' ORDER BY ts;
| id| ts|views|running_avg_views|
|-----|-------------------|-----|-----------------|
|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|8.666666666666666|
...
SELECT
id,
ts,
views,
AVG(views) OVER (ORDER BY ts)
AS running_avg_views
FROM dc_news_fact
WHERE id = '12121'
ORDER BY ts;
SELECT
id,
ts,
views,
AVG(views) OVER(
PARTITION BY id ORDER BY ts)
AS running_avg_views
FROM dc_news_fact
ORDER BY id, ts;
| id| ts|views| running_avg_views|
|-----|-------------------|-----|-------------------|
|12121|2015-12-27 17:14:16| | |
|12121|2015-12-27 17:34:16| 23|23.0000000000000000|
... ... ... ...
|12211|2015-12-28 03:17:18| | |
|12211|2015-12-28 03:37:18| 4| 4.0000000000000000|
|12211|2015-12-28 03:57:18| 2| 3.0000000000000000|
|12211|2015-12-28 04:17:18| 2| 2.6666666666666667|
...
Time Series Analysis in PostgreSQL