题解 | #牛客直播各科目平均观看时长#
牛客直播各科目平均观看时长
https://www.nowcoder.com/practice/e9e7dc4c8623467793f6999cbfee9360
# 请你统计每个科目的平均观看时长,提前进入等待时间不算,反复进出用户去重
# (观看时长定义为离开直播间的时间与进入直播间的时间之差,单位是分钟),
# 输出结果按平均观看时长降序排序,结果保留两位小数。
SELECT course_name
,ROUND(SUM(len_course)/COUNT(DISTINCT user_id),2) avg_Len
FROM (
SELECT course_name
,user_id
,IF(CAST(LEFT(course_datetime,15) AS DATETIME)>=in_datetime,TIMESTAMPDIFF(MINUTE,CAST(LEFT(course_datetime,15) AS DATETIME),out_datetime),TIMESTAMPDIFF(MINUTE,in_datetime,out_datetime)) len_course
FROM course_tb
LEFT JOIN attend_tb USING(course_id)
) t
GROUP BY course_name
ORDER BY avg_Len DESC
