2024-12 Bilibili 中等

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

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

任务

计算2022年春节法定假日期间(2022年1月XX日至2022年2月XX日?自己查)的会员收入总额,结果保留两位小数。

考点

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

2025春招面试真题 时间日期 CTE或SubQuery 数学运算符 inner join between and sum round 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真题

ID144 哔哩哔哩面试真题(1)按日分摊会员收入  
中等 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
ID148 哔哩哔哩面试真题(5)每月分摊会员收入  
困难 inner join between and sum datediff + / 时间日期 CTE或SubQuery 数学运算符 2025春招面试真题 Bilibili
ID149 哔哩哔哩面试真题(6)全年会员收入分类  
困难 group by inner join between and case when sum datediff + 时间日期 CTE或SubQuery 数学运算符 2025春招面试真题 Bilibili

MySQL 8.0

00:00