SQL 刷题/【美团】查询高回头率视频
上一题下一题中等通过率 50%

【美团】查询高回头率视频

JOIN 连接聚合函数GROUP BY窗口函数HAVINGORDER BY用户行为分析排行榜面试真题

题目描述

来源:美团 SQL 面试真题

课程平台希望找出能让用户一遍接一遍重复观看的高回头率视频,并统计每个视频带来的重复观看次数。

数据表

course_info_tb 课程信息表

字段类型说明
idBIGINT课程记录 ID,主键
cidBIGINT课程 ID
tagVARCHAR视频类别
release_dateDATE发布日期
durationINT视频时长

play_record_tb 用户观看记录表

字段类型说明
idBIGINT观看记录 ID,主键
uidBIGINT用户 ID
cidBIGINT课程 ID
start_timeDATETIME开始观看时间
end_timeDATETIME结束观看时间
scoreINT用户评分

重复观看口径

  • 先按 uid + cid 统计每位用户观看每个视频的次数。
  • 同一用户对同一视频只观看 1 次时,不计入该视频的重复观看次数。
  • 同一用户对同一视频观看 n 次且 n > 1 时,为该视频贡献 n 次重复观看。
  • 视频的 pv 是所有重复观看用户贡献次数之和。
  • 只输出存在重复观看的课程。

题目要求

  • pv 降序排名。
  • pv 相同时,发布日期越晚的视频排名越靠前。
  • 如前两项仍相同,使用 cid 升序作为稳定排序条件。
  • 取排名前三的视频;不足三个时全部输出。
  • 结果按排名升序排列。

期望输出列

列名说明
cid课程 ID
pv被重复观看次数
rk视频排名

数据样例

当前运行环境
idPKBIGINTcidBIGINTtagVARCHAR(32)release_dateDATEdurationINT
19001sql2022-01-0160
29002sql2022-01-0190
39003sql2022-01-0145
49004java2022-01-0245
输入数据显示 4 / 4
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

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