开始使用免费开始使用

包含缺失日期的月均值

按月计算 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; 
编辑并运行代码