简单
技术面试0 次浏览

在快手的短视频业务中,我们经常需要分析用户的观看时长数据。现有一份用户观看时长的数据集,数据包含用户 ID、视频 ID 和观看时长(单位:秒)。请编写 SQL 语句,找出每个用户观看时长最长的视频 ID。

快手数据分析师
SQL数据查询用户行为分析

答题要点

推荐使用分层分析法来解答本题。首先,要从原始数据中筛选出每个用户对应的最大观看时长;然后,根据这个最大观看时长,找出对应的视频 ID。关键要点如下:1. 使用窗口函数`MAX()`计算每个用户的最大观看时长。2. 通过`ROW_NUMBER()`函数为每个用户的观看记录按照观看时长降序排序。3. 筛选出排序为 1 的记录,即每个用户观看时长最长的视频。示例思路:可以先通过`MAX()`函数在子查询中计算出每个用户的最大观看时长,再将原始数据与子查询进行连接,筛选出观看时长等于最大观看时长的记录。示例话术:首先,我会使用窗口函数计算每个用户的最大观看时长,然后对每个用户的观看记录进行排序,最后筛选出排序为 1 的记录,这些记录就是每个用户观看时长最长的视频。