校招算法笔面试 | SQL笔试面试编程题-统计用户获得积分

题目## 题目

题目链接

这道题目要求我们计算每个用户在最近时间内的访问积分。我们要做的事情如下:

1. 确定总体问题

我们需要计算每个用户的访问积分,并按积分降序排序。积分的计算公式是:每访问10分钟获得1积分。

2. 分析关键问题
  • 计算访问时长:使用TIMESTAMPDIFF函数计算每次访问的时长(以分钟为单位)。
  • 计算积分:将访问时长除以10,使用FLOOR函数取整,计算每次访问的积分。
  • 汇总积分:对每个用户的积分进行汇总。
  • 排序输出:按积分降序排序。
3. 解决每个关键问题的代码及讲解
步骤1:计算访问时长

我们使用TIMESTAMPDIFF函数计算每次访问的时长(以分钟为单位):

TIMESTAMPDIFF(MINUTE, visit_time, leave_time)
  • TIMESTAMPDIFF(MINUTE, visit_time, leave_time):计算离开时间与访问时间之间的分钟差。
步骤2:计算积分

将访问时长除以10,使用FLOOR函数取整,计算每次访问的积分:

FLOOR(TIMESTAMPDIFF(MINUTE, visit_time, leave_time)/10)
  • FLOOR(.../10):将访问时长除以10,取整计算积分。
步骤3:汇总积分

对每个用户的积分进行汇总:

SUM(FLOOR(TIMESTAMPDIFF(MINUTE, visit_time, leave_time)/10)) AS point
  • SUM(...) AS point:对每个用户的积分进行汇总,计算总积分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值