此题共包含一张表:

表1:用户行为日志表tb_user_log

要解决的问题:

统计2021年11月每天的人均浏览文章时长(秒数),结果保留1位小数,并按时长由短到长排序。

解题思路:

  1. 先确定筛选条件,时间2021年11月以及artical_id不能是0
  2. 人均浏览文章时长,总时长/去重UID
  3. 按日期分组,按时长排序
select date(in_time) dt, ROUND(sum(TIMESTAMPDIFF(second,in_time,out_time))/ count(DISTINCT uid),1) avg_viiew_len_sec
from tb_user_log
where DATE_FORMAT(in_time,'%Y%m') = '202111' and artical_id != 0
group by dt
order by avg_viiew_len_sec