मिसिंग तारीखों सहित मासिक औसत
डेटा की प्रत्येक महीने के लिए, रोज़ बनाए गए 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;