Eksik tarihlerle aylık ortalama
Verilerdeki her ay için, Evanston 311’de günde oluşturulan ortalama talep sayısını bul.
Bu kez, hiç talep olmayan tarihleri göz ardı etme.
Bu egzersiz
SQL ile Keşifsel Veri Analizi
kursunun bir parçasıdırEgzersiz talimatları
- 2016-01-01’den 2018-06-30’a kadar bir tarih serisi üret.
- Seriyi, günde oluşturulan talep sayısını sayan bir alt sorgu ile birleştir.
- Ayları elde etmek için
date_trunc()kullan; tüm tarihleri içerendateüzerinden yap,dayüzerinden DEĞİL. - NULL
countdeğerlerini 0 ile değiştirmek içincoalesce()kullan. Bu değerin ortalamasını hesapla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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;