```WITH t AS (
SELECT
*,
TIMESTAMPDIFF( SECOND, in_time, out_time ) AS subtime,
date( in_time ) days
FROM
tb_user_log
WHERE
YEAR ( in_time ) = "2021"
AND MONTH ( in_time ) = "11"
AND artical_id !=0
) SELECT
t.days,
ROUND( sum( t.subtime ) / count( DISTINCT uid ), 1 ) AS avg_view_len_sec
FROM
t
GROUP BY
days
ORDER BY
avg_view_len_sec ASC;
解题思路:
1.依据条件 2021年11月 artical_id不为0为条件筛选得到 一张临时表,该临时表增加了2个字段,分别是 年月日 和 日用户浏览时长。
2.以天为条件分组临时表,得到每天用户浏览时长和不同用户的分组表,最后 统计 (临时表排除了非登录用户)登录用户日浏览时长总和与用户个数的日用户浏览时长,其中用户需去重。