题解 | 统计用户获得积分

统计用户获得积分

https://www.nowcoder.com/practice/22ed0cd240824bb597b3130fef389cea

SELECT
    user_id,
    SUM(
        CASE 
            WHEN TIMESTAMPDIFF(MINUTE, visit_time, leave_time) < 0 THEN 0 
            ELSE FLOOR(TIMESTAMPDIFF(MINUTE, visit_time, leave_time) / 10)
        END
    ) AS point
FROM visit_tb
GROUP BY user_id
ORDER BY point DESC

需要注意的是

在了解了timestampdiff函数之后,时间差值的问题解决了

通过取整函数去计算用户的积分

# ceil(n) 取大于等于数值n的最小整数;

# floor(n) 取小于等于数值n的最小整数;

之后通过user_id分组,使用sum求和即可

这里其实可以不用判断,直接写函数就可以

全部评论

相关推荐

淬月星辉:专利是什么?至少描述一下吧,然后把什么计算机二级、普通话这种拉低格调的证书删掉,不然hr以为你没东西写
点赞 评论 收藏
分享
10-20 14:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务