此题共包含两张表:

表1:course_tb

表2:attend_tb

要解决的问题:

请你统计每个科目的平均观看时长(观看时长定义为离开直播间的时间与进入直播间的时间之差,单位是分钟),输出结果按平均观看时长降序排序,结果保留两位小数。

解题思路:

  1. 统计每条数据的观看时长timestampdiff(minute,in_datetime, out_datetime)
  2. 按科目分组,按观看时长排序,保留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