SQL 刷题/【携程】计算订单奖励后的会员积分
上一题下一题中等通过率 100%

【携程】计算订单奖励后的会员积分

WHERE 条件JOIN 连接聚合函数GROUP BY子查询ORDER BY用户行为分析面试真题

题目描述

来源:携程 SQL 面试真题

某公司需要根据最近几日的订单数据,计算会员获得订单奖励后的最新积分。

数据表

order_tb 订单信息表

字段类型说明
order_idBIGINT订单 ID
user_idBIGINT用户 ID
order_priceDECIMAL订单金额
order_timeDATETIME订单创建时间

uservip_tb 会员等级信息表

字段类型说明
user_idBIGINT用户 ID
vipVARCHAR会员等级
pointINT更新前的会员积分

积分规则

  • 订单金额严格大于 100 时,用户获得与订单金额相同数额的积分。
  • 订单金额小于或等于 100 时,不获得积分。
  • 同一用户有多笔符合条件的订单时,奖励积分需要累加。
  • 只输出至少获得过一次奖励积分的用户。

题目要求

  • 计算并输出用户 ID 和更新后的积分。
  • 更新后积分 = 当前积分 + 符合条件订单的金额总和。
  • 按更新后积分降序排列;积分相同时按 user_id 升序排列。

期望输出列

列名说明
user_id获得订单奖励的用户 ID
point订单奖励后的最新积分

数据样例

当前运行环境
order_idPKBIGINTuser_idBIGINTorder_priceDECIMAL(12, 2)order_timeDATETIME
101113802022-09-01 09:00:00
102122002022-09-01 10:00:00
103132602022-09-01 12:00:00
104111002022-09-02 11:00:00
105121502022-09-02 12:00:00
1061212002022-09-02 13:00:00
10711602022-09-03 09:00:00
108133802022-09-03 09:30:00
输入数据显示 8 / 8
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里