-- 计算用户总积分:访问时长每满10分钟得1分(不足10分钟不计)
SELECT 
    user_id,  -- 用户ID
    -- 计算总积分:访问时长除以10后向下取整,再累加所有符合条件的访问记录
    SUM(FLOOR(visit_duration / 10)) AS point  
FROM (
    -- 子查询:计算每个用户每次访问的时长(分钟)
    SELECT 
        user_id,
        DATE(visit_time) AS visit_time,  -- 访问日期
        -- 将访问时长从秒转换为分钟:(离开时间戳 - 访问时间戳) / 60
        (UNIX_TIMESTAMP(leave_time) - UNIX_TIMESTAMP(visit_time)) / 60 AS visit_duration  
    FROM visit_tb
) t 
-- 筛选条件:仅统计访问时长≥10分钟的记录
WHERE visit_duration >= 10 
-- 按用户分组,计算每个用户的总积分
GROUP BY user_id 
-- 按积分从高到低排序
ORDER BY point DESC;