【场景】:观看时长

【分类】:分组查询、多表连接

分析思路

难点: 1.计算(观看时长定义为离开直播间的时间与进入直播间的时间之差,单位是分钟),使用timestampdiff()

(1)请你统计每个科目的平均观看时长,输出结果按平均观看时长降序排序,结果保留两位小数

  • [使用]:timestampdiff(minute,in_datetime,out_datetime)

  • [使用]:group by course_name; order by avg_Len desc

最终结果

select 查询结果 [课程名称;平均观看时长]
from 从哪张表中查询数据[多表]
group by 查询条件 [课程名称]
order by 对查询结果排序 [按平均观看时长降序排序];

求解代码

select
    course_name,
    round(avg(timestampdiff(minute,in_datetime,out_datetime)),2) as avg_Len
from course_tb
left join attend_tb using(course_id)
group by course_name
order by avg_Len desc