【发布时间】:2020-08-13 20:55:50
【问题描述】:
考虑我有以下一组数据
s_date | sales
------------+-------
2020-08-04 | 10
2020-08-05 | 20
2020-08-07 | 10
2020-08-08 | 20
2020-08-09 | 10
2020-08-10 | 30
2020-08-11 | 20
2020-08-12 | 10
我想计算每周“销售额”的平均值。请注意,从 2020 年 8 月 3 日开始的那一周,日期 2020 年 8 月 3 日和 2020 年 8 月 6 日的数据缺失。
当我使用 AVG() 函数计算每周平均值时,它会根据可用记录计算平均值。
以下是我正在尝试的查询以及我从中得到的响应。
select trunc(date_trunc('WEEK', s_date)::timestamp) as week, avg(sales)
from test_temp.sales group by week;
结果:
week | avg
------------+-----
2020-08-03 | 14
2020-08-10 | 20
但是,我想计算将 0 作为缺失日期值的平均值。所以平均计算应该使用以下值。
s_date | sales
------------+-------
2020-08-03 | 0
2020-08-04 | 10
2020-08-05 | 20
2020-08-06 | 0
2020-08-07 | 10
2020-08-08 | 20
2020-08-09 | 10
2020-08-10 | 30
2020-08-11 | 20
2020-08-12 | 10
预期结果:
week | avg
------------+-----
2020-08-03 | 10 // Expected value
2020-08-10 | 20
谁能告诉我如何按预期计算平均值?
问候,
保罗
【问题讨论】:
标签: sql amazon-redshift