Voortschrijdend gemiddelde

Tijdreeksanalyse in PostgreSQL

Jasmin Ludolf

Content Developer, DataCamp

Wat is een voortschrijdend gemiddelde?

schuivend venster

Tijdreeksanalyse in PostgreSQL

Voortschrijdende gemiddelden

  • Geef aan welke rijen je gemiddeld
  • Met de clausule ROWS BETWEEN
  • UNBOUNDED PRECENDING AND CURRENT ROW: bekijk alle vorige rijen t.o.v. de huidige rij
SELECT 
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;
Tijdreeksanalyse in PostgreSQL

Voortschrijdend gemiddelde berekenen

  • Bereken het voortschrijdend gemiddelde over vijf rijen:
    • ROWS BETWEEN 4 PRECEDING AND CURRENT ROW

 

(1) Rij ervoor

(2) Rij ervoor

(3) Rij ervoor

(4) Rij ervoor

(5) Huidige rij

Tijdreeksanalyse in PostgreSQL

Voortschrijdend gemiddelde berekenen

SELECT
    id,
    ts,
    views,

AVG(views) OVER (
ORDER BY ts
ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) AS moving_average_five
FROM dc_news_fact;
Tijdreeksanalyse in PostgreSQL

Voortschrijdend gemiddelde berekenen: resultaat

|   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|
...
Tijdreeksanalyse in PostgreSQL

Voortschrijdend gemiddelde zonder huidige rij

  • ROWS BETWEEN 5 PRECEDING AND 1 PRECEDING
SELECT
    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;
Tijdreeksanalyse in PostgreSQL

Laten we oefenen!

Tijdreeksanalyse in PostgreSQL

Preparing Video For Download...