【发布时间】:2021-02-05 20:14:09
【问题描述】:
广告表:
- 每天每个广告一行
date | ad_id | account_id | spend
2018-05-01 123 1101 100
2018-05-02 123 1101 125
2018-05-03 124 1101 150
2018-05-04 124 1101 150
2018-05-04 125 1105 150
2018-05-04 126 1105 150
2018-05-04 123 1101 150
2018-01-01 123 1101 150
我正在尝试编写一个查询来找出:自 1 月 1 日以来每天的总支出和每周的变化。
因此,每周应显示第 8 天的总支出 - 第 1 天的总支出。我可以实现该滞后窗口功能,但是如果日期列中未提及第一天,我不确定该怎么做。假设 5 月的第一天没有支出,那么如果我使用了滞后功能,答案就会出错。有没有办法我可以编写一个查询来查找通过日期而不是滞后函数的总支出?如果第一天我没有消费,我可以得到 1200-0=1200 是 WOW 的变化。此外,我无法创建可以加入广告表的日期表。
到目前为止我已经写了这么多:
select dates, sum(spend) "total_spend_each_day",
from fb_ads as f
where dates>= '2018-01-01'
group by dates
order by 1;
期望的输出:
date | total_spend_each_day | Week_over_week_change
2018-05-01 500 Null
2018-05-02 600 Null
2018-05-03 700 Null
2018-05-04 800 Null
2018-05-05 900 Null
2018-05-06 1000 Null
2018-01-07 1100 Null
2018-01-08 1200 700
【问题讨论】:
标签: mysql sql date case window-functions