假设我们有一个视频平台,用户可以购买会员服务。我们需要对会员的购买记录进行收入摊销,即将每笔会员收入均匀地分摊到会员有效期的每一天。
举例,如用户A购买的时间均匀的分摊到每一天,如用户购买了一个15元的、7月26日-8月25日的月度大会员,则在此期间A每天贡献的收入为15/31=0.48元的收入。
任务
按月计算2021年的会员收入总额,结果保留两位小数。
考点
- 日期计算:计算会员有效期的天数。
- 条件筛选:筛选出2021年有效的会员记录。
- 收入摊销:将每笔会员收入均匀地分摊到每一天。
- 按月汇总:使用聚合函数按月计算收入总和,并保留两位小数。
bilibili_m1,会员购买记录表
user_id | begin_date | end_date | pay_amount |
---|---|---|---|
B1000 | 2021-02-03 | 2022-02-03 | 144 |
B1001 | 2021-08-07 | 2022-08-07 | 144 |
B1002 | 2021-01-06 | 2021-02-06 | 19 |
B1003 | 2021-03-14 | 2021-06-14 | 51 |
B1004 | 2021-02-11 | 2022-02-11 | 144 |
bilibili_m2,日期辅助表
m_date | y_m |
---|---|
2017-01-01 | 2017-01 |
2017-01-02 | 2017-01 |
2017-01-03 | 2017-01 |
2017-01-04 | 2017-01 |
2017-01-05 | 2017-01 |
 成为会员,解锁300道大厂数分SQL真题
MySQL 8.0