【发布时间】:2020-12-04 02:25:52
【问题描述】:
我想使用 SQL 查询计算某些数据的月平均值,其中数据位于 redshift DB 中。 数据在表格中以下列格式显示。
s_date | sales
------------+-------
2020-08-04 | 10
2020-08-05 | 20
---- | --
---- | --
数据可能不会出现在一个月中的所有日期。 如果某天数据不存在,则应视为 0。
以下查询使用 AVG() 函数“分组”月份作为基于可用日期数据的平均值。
select trunc(date_trunc('MONTH', s_date)::timestamp) as month, avg(sales) from sales group by month;
但它不会将缺失日期的数据视为 0。按预期计算每月平均值的正确查询应该是什么?
另一个期望是,对于当前月份,应根据截至今天的数据计算平均值。所以它不应该考虑整个月(比如 30 或 31 天)。
问候,
保罗
【问题讨论】:
标签: sql amazon-redshift