此题共包含两张表:
表1:course_tb
表2:attend_tb
要解决的问题:
请你统计每个科目的平均观看时长(观看时长定义为离开直播间的时间与进入直播间的时间之差,单位是分钟),输出结果按平均观看时长降序排序,结果保留两位小数。
解题思路:
- 统计每条数据的观看时长timestampdiff(minute,in_datetime, out_datetime)
- 按科目分组,按观看时长排序,保留2位小数
SELECT ctb.course_name,
ROUND(avg(TIMESTAMPDIFF(minute,in_datetime, out_datetime)),2) avg_len
from attend_tb atb
LEFT JOIN course_tb ctb
on atb.course_id = ctb.course_id
GROUP BY ctb.course_name
ORDER BY avg_len desc