SELECT dt,ROUND(SUM(view_len_sec)/COUNT(DISTINCT uid),1) AS avg_viiew_len_sec
FROM (
SELECT uid,DATE(in_time) AS dt,
TIMESTAMPDIFF(SECOND,in_time,out_time) AS view_len_sec
FROM tb_user_log
WHERE artical_id!=0 AND DATE_FORMAT(in_time,'%Y%m')='202111'
)AS t
GROUP BY dt
ORDER BY avg_viiew_len_sec;
本题要点:
1.计算平均数时要注意DISTINCT
2.GROUP BY存在时,其对应的SELECT中必须要么是聚合键,要么是聚合函数。这个聚合函数允许有ROUND

京公网安备 11010502036488号