题解|12. 抖音20:00-23:00各类型的直播间观看总时长
抖音20:00-23:00各类型的直播间观看总时长
明确题意:
统计20:00-23:00点之间各类型的直播间观看总时长(单位分钟,保留小数点后两位),并按观看总时长降序降序。
问题拆解:
- 关联观看记录的直播类型。知识点:join
- 筛选观看时间在20:00-23:00点之间的记录。知识点:where
- 统计各类型观看总时长。知识点:按类型分组group by;计算每次观看时长TIMESTAMPDIFF;统计总时长sum()
- 总时长保留2位小数。知识点:round(..., 2)
- 按观看总时长降序降序。知识点 order by ... desc
代码实现:
select room_type,
round(sum(TIMESTAMPDIFF(
MINUTE,
greatest(in_time, str_to_date("20:00:00", '%H:%i:%s')),
least(out_time, str_to_date("23:00:00", '%H:%i:%s'))))
, 2) as sum_view_minute
from user_view_tb
join room_info_tb using(room_id)
where in_time < "23:00:00" and out_time > "20:00:00"
group by room_type
order by sum_view_minute desc