关注
第二道sql题参考答案
SELECT
userid,
-- 完整观看率 = 至少完整观看1次的视频数 / 总去重视频数
ROUND(
SUM(has_complete) / COUNT(DISTINCT video_id) * 100, -- 分母为去重视频数
2
) AS complete_rate
FROM (
-- 子查询:先按用户+视频分组,判断该视频是否至少完整观看过1次
SELECT
w.userid,
w.video_id,
-- 若该视频有1次以上完整观看,标记为1(否则0)
MAX(
CASE
WHEN TIMESTAMPDIFF(SECOND, w.start_time, w.end_time) >= v.duration
THEN 1
ELSE 0
END
) AS has_complete
FROM
watch_records w
JOIN users u ON w.userid = u.userid
JOIN videos v ON w.video_id = v.video_id
WHERE
u.gender = 'female'
AND w.end_time > w.start_time
GROUP BY
w.userid, w.video_id -- 按用户+视频去重
) AS t
GROUP BY
userid
HAVING
COUNT(DISTINCT video_id) > 50 -- 总去重视频数超50个
ORDER BY
complete_rate DESC
LIMIT 10;
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
14387次浏览 195人参与
# 工作前VS工作后,你的心态变化 #
38391次浏览 267人参与
# 论秋招对个人心气的改变 #
15449次浏览 219人参与
# 从mentor身上学到了__ #
55543次浏览 886人参与
# 程序员找工作至少要刷多少题? #
23272次浏览 294人参与
# 我的省钱小妙招 #
37551次浏览 446人参与
# 机械人避雷的岗位/公司 #
44707次浏览 317人参与
# 为了减少AI幻觉,你注入过哪些设定? #
7191次浏览 201人参与
# 你的mentor是什么样的人? #
51483次浏览 730人参与
# 通信/硬件求职避坑tips #
139887次浏览 1086人参与
# 毕业论文进行时 #
27612次浏览 153人参与
# 牛客AI体验站 #
9004次浏览 223人参与
# 我和mentor的爱恨情仇 #
106579次浏览 957人参与
# 运营来爆料 #
77386次浏览 467人参与
# 你现在会用到哪些AI技能? #
24769次浏览 137人参与
# 应届生进小公司有什么影响吗 #
118720次浏览 1162人参与
# 找实习多的是你不知道的事 #
1789168次浏览 20670人参与
# 运营人的第一份offer应该如何选 #
218887次浏览 1260人参与
# 第一次找实习,我建议__ #
71233次浏览 846人参与
# 我现在比当时_,你想录用我吗 #
10036次浏览 140人参与