SQL 刷题/【腾讯】查询首周最受欢迎的 Top3 课程
上一题下一题中等通过率 50%

【腾讯】查询首周最受欢迎的 Top3 课程

WHERE 条件JOIN 连接聚合函数GROUP BY日期函数ORDER BY用户行为分析排行榜面试真题

题目描述

来源:腾讯 SQL 面试真题

课程平台希望根据课程发布后的首周观看表现,找出最受欢迎的课程。

数据表

course_info_tb 课程信息表

字段类型说明
cidBIGINT课程 ID,主键
tagVARCHAR(32)视频类别
release_dateDATE发布日期
durationINT视频时长,单位分钟

play_record_tb 用户观看记录表

字段类型说明
uidBIGINT用户 ID
cidBIGINT课程 ID
start_timeDATETIME开始观看时间
end_timeDATETIME结束观看时间
scoreDECIMAL(3,1)用户评分

统计口径

  • 课程平均评分按该课程全部观看记录中的 score 计算;题目未限定评分时间范围。
  • 首周观看窗口为发布日当天至发布后第 6 个自然日,即 DATEDIFF(DATE(start_time), release_date) BETWEEN 0 AND 6
  • 观看量为首周观看记录数;总播放时长为首周记录的观看分钟数之和。
  • 平均评分小于 3 的课程不参与排名。
  • 观看量越大越受欢迎;观看量相同时,总播放时长越长越受欢迎。
  • 最多返回 3 门课程;不足 3 门时全部返回。

期望输出列

列名说明
cid课程 ID
view_count发布后一周内的观看次数
total_play_minutes发布后一周内的总播放时长,单位分钟

数据样例

当前运行环境
cidPKBIGINTtagVARCHAR(32)release_dateDATEdurationINT
9001sql2022-01-0160
9002sql2022-01-0190
9003sql2022-01-0145
9004java2022-01-1050
9005java2022-01-0140
输入数据显示 5 / 5
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

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