2024-11 Bilibili 困难

假设我们有一个视频平台,用户可以购买会员服务。我们需要对会员的购买记录进行收入摊销,即将每笔会员收入均匀地分摊到会员有效期的每一天。

举例,如用户A购买的时间均匀的分摊到每一天,如用户购买了一个15元的、7月26日-8月25日的月度大会员,则在此期间A每天贡献的收入为15/31=0.48元的收入。

任务

按月计算2021年的会员收入总额,结果保留两位小数。

考点

  1. 日期计算:计算会员有效期的天数。
  2. 条件筛选:筛选出2021年有效的会员记录。
  3. 收入摊销:将每笔会员收入均匀地分摊到每一天。
  4. 按月汇总:使用聚合函数按月计算收入总和,并保留两位小数。

2025春招面试真题 时间日期 CTE或SubQuery 数学运算符 inner join between and sum datediff + /

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真题

ID145 哔哩哔哩面试真题(2)计算春节周会员收入  
中等 inner join between and sum round datediff + 时间日期 CTE或SubQuery 数学运算符 2025春招面试真题 Bilibili
ID146 哔哩哔哩面试真题(3)计算2月会员收入  
中等 inner join sum round datediff + / 时间日期 CTE或SubQuery 数学运算符 2025春招面试真题 Bilibili
ID147 哔哩哔哩面试真题(4)每周分摊会员收入  
困难 inner join sum round datediff + / 时间日期 CTE或SubQuery 数学运算符 2025春招面试真题 Bilibili
ID149 哔哩哔哩面试真题(6)全年会员收入分类  
困难 group by inner join between and case when sum datediff + 时间日期 CTE或SubQuery 数学运算符 2025春招面试真题 Bilibili
ID313 计算每个用户的RFM值(1)  
中等 group by inner join count sum datediff current_date 聚合函数 RFM模型 美团

MySQL 8.0

00:00