此题共包含一张表:
表1:用户行为日志表tb_user_log
要解决的问题:
统计2021年11月每天的人均浏览文章时长(秒数),结果保留1位小数,并按时长由短到长排序。
解题思路:
- 先确定筛选条件,时间2021年11月以及artical_id不能是0
- 人均浏览文章时长,总时长/去重UID
- 按日期分组,按时长排序
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