ПочатиПочніть безкоштовно

Місячне середнє з пропущеними датами

Знайдіть середню кількість звернень до Evanston 311, створених за день, для кожного місяця в даних.

Цього разу не ігноруйте дати без звернень.

Ця вправа є частиною курсу

Розвідувальний аналіз даних у SQL

Переглянути курс

Інструкції до вправи

  • Згенеруйте послідовність дат від 2016-01-01 до 2018-06-30.
  • Зʼєднайте цю послідовність із підзапитом, щоб підрахувати кількість звернень, створених за день.
  • Використайте date_trunc(), щоб отримати місяці з date, яка містить усі дати, а НЕ з day.
  • Використайте coalesce(), щоб замінити значення count NULL на 0. Обчисліть середнє цього значення.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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; 
Редагувати та запускати код