विंडो फंक्शन में डेटा को पार्टिशन करना

Snowflake में Window Functions

Jake Roach

Field Data Engineer

डेटा की रैंकिंग

यहाँ, हम परिणाम सेट में सभी रिकॉर्ड्स की रैंकिंग कर रहे हैं!

      user_id  |    event_name   |  km_traveled  |  closest_attendees 
      -------  | --------------- | ------------- | ----------------- 
      user_81  |  Lunar Drift    |      0.5      |         1         
      user_02  |  Lunar Drift    |      1.1      |         2       
      user_33  |  Crimson Arc    |      8.6      |         3          
      user_33  |  Neon Prophet   |      8.6      |         3         
      user_15  |  VibeStorm      |      17       |         5          
      user_94  |  The Dusk Owls  |      41       |         6        
      user_47  |  Lunar Drift    |      61       |         7   
      user_56  |  Crimson Arc    |      116      |         8         
Snowflake में Window Functions

पार्टिशन्स के साथ डेटा रैंक करना

अब, हम हर चुनी हुई विंडो के भीतर डेटा को रैंक करना चाहते हैं।

हर वेन्यू तक तय की दूरी के आधार पर कॉन्सर्ट अटेंडीज़ की रैंकिंग दिखाने वाली टेबल

Snowflake में Window Functions

PARTITION BY

SELECT
    user_id,
    event_name,
    distance_traveled,

    RANK() OVER(
        -- Create window by event_name
        PARTITION BY event_name
        ORDER BY km_traveled
    ) AS closest_concert_goer

FROM CONCERTS.attendance;

PARTITION BY हमें रिकॉर्ड्स की विंडो बनाने देता है, ताकि हम उन पर फंक्शन्स लगा सकें

$$

  • OVER(...) में PARTITION BY पहले आता है, उसके बाद ORDER BY
  • GROUP BY जैसा, लेकिन रिकॉर्ड्स को "संकुचित" नहीं करता
Snowflake में Window Functions

पार्टिशन्स के साथ डेटा रैंक करना

SELECT
    level,
    price,

    RANK() OVER(
        PARTITION BY level
        ORDER BY price DESC
    ) AS price_rank

FROM CONCERTS.attendance;
  • PARTITION BY विंडो बनाता है
      level  |   price   | price_rank 
    -------- | --------- | -----------
       100   |    765    |      1
       100   |    617    |      2
       100   |    490    |      3
       100   |    490    |      3

                  ...

       200   |    212    |      1
       200   |    207    |      2

                  ...
Snowflake में Window Functions

FIRST_VALUE से समरी मेट्रिक्स बनाना

    FIRST_VALUE(<1>) OVER(
        PARTITION BY <2>
        ORDER BY <3>
    ) AS <alias>

FIRST_VALUE विंडो में पहला मान खोजने में मदद करता है

`<1>`: कौन-सा कॉलम लौटाना है

Snowflake में Window Functions

AVG से समरी मेट्रिक्स बनाना

AVG(<1>) OVER(
    PARTITION BY <2>
    -- No need to ORDER BY!
) AS <alias>

AVG हर विंडो के लिए किसी फ़ील्ड का औसत निकालता है

`<1>`: जिसका औसत लेना है वह कॉलम

$$

                                                                                                                                                                                            ... `ORDER BY` की ज़रूरत नहीं!
Snowflake में Window Functions

कस्टमर सैटिस्फैक्शन

SELECT
    user_id, event_name, satisfaction_score,

FIRST_VALUE(satisfaction_score) OVER( PARTITION BY event_name -- Satisfaction score for the closest concert-goer ORDER BY km_traveled ) AS first_score,
-- Find the average satisfcation score for a "window" of records AVG(satisfaction_score) OVER( PARTITION BY event_name ) AS average_score
FROM CONCERTS.attendance;
Snowflake में Window Functions

कस्टमर सैटिस्फैक्शन


      user_id  |   event_name   |  satisfaction_score  |  first_score  |  average_score 
     --------- | -------------- | -------------------- | ------------- | ---------------

      user_26  |  Pulse Theory  |          71          |       98      |      84.5      
      user_92  |  Pulse Theory  |          98          |       98      |      84.5      

                                          ...

      user_57  |   Nova Sway    |           4          |       22      |      29.3      
      user_39  |   Nova Sway    |          22          |       22      |      29.3      
      user_44  |   Nova Sway    |          62          |       22      |      29.3      

                                          ...
Snowflake में Window Functions

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

Snowflake में Window Functions

Preparing Video For Download...