मूविंग एवरेज और टोटल्स

Snowflake में Window Functions

Jake Roach

Field Data Engineer

रनिंग एवरेज और टोटल्स

"स्लाइडिंग" विंडो फ्रेम दिखाने वाला आउटपुट.

Snowflake में Window Functions

"मूविंग" एवरेज और टोटल्स

मूविंग एवरेज दर्शाने वाला आउटपुट.

Snowflake में Window Functions

"मूविंग" एवरेज और टोटल्स

मूविंग टोटल दर्शाने वाला आउटपुट.

Snowflake में Window Functions

मूविंग कैलकुलेशन

SELECT
    ...

    AVG(<1>) OVER(
        PARTITION BY ...
        ORDER BY <2>

        -- Window between the X preceding
        -- and Y following records

ROWS BETWEEN <X> PRECEDING AND <Y> FOLLOWING
) ...

रिकॉर्ड्स की संख्या बताएँ वर्तमान पंक्ति से पहले और बाद में

ROWS BETWEEN X PRECEDING AND Y FOLLOWING
  • "मूविंग" कैलकुलेशन, रनिंग नहीं
  • फिर भी CURRENT ROW इस्तेमाल कर सकते हैं

$$

<X>: पीछे देखने वाली पंक्तियाँ (#)

<Y>: आगे देखने वाली पंक्तियाँ (#)

Snowflake में Window Functions

मूविंग एवरेज बनाना

SELECT
    member_id, workout_date, calories_burned,

    -- Create a moving average using a window using the previous workout, 
    -- current workout, and next workout

    AVG(calories_burned) OVER(
        PARTITION BY member_id
        ORDER BY workout_date

ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
) AS moving_avg_cb FROM FITNESS.workouts;
Snowflake में Window Functions

मूविंग एवरेज बनाना

             member_id  |  workout_date  |   calories_burned  |  moving_avg_cb  
            ----------- | -------------- | ------------------ | --------------- 
               m_192    |   2024-01-01   |         105        |      130.5      
               m_192    |   2024-01-03   |         156        |      110.0      
               m_192    |   2024-01-04   |          69        |      109.0      
               m_192    |   2024-01-10   |         102        |      120.0      
               m_192    |   2024-01-11   |         189        |      127.3     
               m_192    |   2024-01-12   |          91        |      145.0     
               m_192    |   2024-01-16   |         155        |      127.7      
               m_192    |   2024-01-19   |         137        |      133.7      
               m_192    |   2024-01-20   |         109        |      123.0      

               m_74     |   2024-02-10   |         374        |      385.0      
                                        ...
Snowflake में Window Functions

मेम्बर्स को मूविंग टोटल से सूचित करना

SELECT
    member_id, workout_date, calories_burned,

    ...

    -- Use CURRENT ROW to avoid "look ahead"
    SUM(calories_burned) OVER(
        PARTITION BY member_id
        ORDER BY workout_date

ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
) AS last_3_cb FROM FITNESS.workouts;
Snowflake में Window Functions

मेम्बर्स को मूविंग टोटल से सूचित करना

      member_id  |  workout_date  |   calories_burned  |  moving_avg_cb  |  last_3_cb
     ----------- | -------------- | ------------------ | --------------- | -----------
        m_192    |   2024-01-01   |         105        |      130.5      |     105
        m_192    |   2024-01-03   |         156        |      110.0      |     261
        m_192    |   2024-01-04   |          69        |      109.0      |     330
        m_192    |   2024-01-10   |         102        |      120.0      |     327
        m_192    |   2024-01-11   |         189        |      127.3      |     360
        m_192    |   2024-01-12   |          91        |      145.0      |     382
        m_192    |   2024-01-16   |         155        |      127.7      |     435
        m_192    |   2024-01-19   |         137        |      133.7      |     383
        m_192    |   2024-01-20   |         109        |      123.0      |     401

        m_74     |   2024-02-10   |         374        |      385.0      |     374
                                            ...
Snowflake में Window Functions

अभ्यास करते हैं!

Snowflake में Window Functions

Preparing Video For Download...