Medie mobilă

Analiza seriilor de timp în PostgreSQL

Jasmin Ludolf

Content Developer, DataCamp

Ce este o medie mobilă?

fereastră glisantă

Analiza seriilor de timp în PostgreSQL

Medii mobile

  • Specificați rândurile de mediat
  • Folosind clauza ROWS BETWEEN
  • UNBOUNDED PRECENDING AND CURRENT ROW: include toate rândurile anterioare rândului curent
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;
Analiza seriilor de timp în PostgreSQL

Calcularea mediei mobile

  • Calculați media mobilă pentru cinci rânduri:
    • ROWS BETWEEN 4 PRECEDING AND CURRENT ROW

 

(1) Rând anterior

(2) Rând anterior

(3) Rând anterior

(4) Rând anterior

(5) Rândul curent

Analiza seriilor de timp în PostgreSQL

Calcularea mediei mobile

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;
Analiza seriilor de timp în PostgreSQL

Calcularea mediei mobile: rezultat

|   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|
...
Analiza seriilor de timp în PostgreSQL

Medie mobilă fără rândul curent

  • 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;
Analiza seriilor de timp în PostgreSQL

Să exersăm!

Analiza seriilor de timp în PostgreSQL

Preparing Video For Download...