शुरू करेंमुफ़्त में शुरू करें

मिसिंग तारीखों सहित मासिक औसत

डेटा की प्रत्येक महीने के लिए, रोज़ बनाए गए Evanston 311 रिक्वेस्ट्स की औसत संख्या निकालें.

इस बार, जिन तारीखों पर कोई रिक्वेस्ट नहीं हैं, उन्हें नज़रअंदाज़ न करें.

यह अभ्यास पाठ्यक्रम का हिस्सा है

SQL में Exploratory Data Analysis

पाठ्यक्रम देखें

अभ्यास निर्देश

  • 2016-01-01 से 2018-06-30 तक तारीखों की एक series जनरेट करें.
  • रोज़ बनाए गए रिक्वेस्ट्स की संख्या गिनने के लिए इस series को एक subquery से join करें.
  • महीनों को पाने के लिए date (जिसमें सभी तारीखें हैं) पर date_trunc() का उपयोग करें, day पर नहीं.
  • NULL count मानों को 0 से बदलने के लिए coalesce() का उपयोग करें. इस मान का औसत निकालें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

-- generate series with all days from 2016-01-01 to 2018-06-30
WITH all_days AS 
     (SELECT generate_series(___,
                             ___,
                             ___::___) AS date),
     -- Subquery to compute daily counts
     daily_count AS 
     (SELECT date_trunc('day', date_created) AS day,
             count(*) AS count
        FROM evanston311
       GROUP BY day)
-- Aggregate daily counts by month using date_trunc
SELECT ___ AS month,
       -- Use coalesce to replace NULL count values with 0
       avg(coalesce(___, ___)) AS average
  FROM all_days
       LEFT JOIN daily_count
       -- Joining condition
       ON all_days.___=daily_count.___
 GROUP BY month
 ORDER BY month; 
कोड संपादित करें और चलाएँ