题解 | #2021年11月每天的人均浏览文章时长#

2021年11月每天的人均浏览文章时长

https://www.nowcoder.com/practice/8e33da493a704d3da15432e4a0b61bb3

# 计算每条记录的时长
# 计算每天有几个人
# 按天分组

# 查询天,平均浏览时长
SELECT dt, ROUND(SUM(sec)/COUNT(DISTINCT uid), 1) avg_viiew_len_sec
FROM (
	# 子查询,查询uid,浏览时长、日期格式化
    SELECT uid, TIMESTAMPDIFF(SECOND, in_time, out_time) sec, DATE_FORMAT(in_time, '%Y-%m-%d') dt
    FROM tb_user_log
	# 加限制条件是说当id为0的时候是在非浏览状态下的记录,不算浏览
    WHERE artical_id != 0
        ) a
GROUP BY dt
# 限制11月的记录
HAVING dt BETWEEN '2021-11-01' AND '2021-11-30'
# 时间由短到长,也就是正序
ORDER BY avg_viiew_len_sec

踩的坑:看到题干说文章id为0代表是在列表页出现的,心想估计要注意,但在测试样例没出现,就忽略了,提交的时候发现有的天的多了,看到题解才发现了这个问题

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务