题解 | #每类视频近一个月的转发量/率#
每类视频近一个月的转发量/率
http://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad
SELECT tag, SUM(if_retweet), ROUND(SUM(if_retweet)/ COUNT(*),3) retweet_rate
FROM tb_user_video_log,tb_video_info
WHERE tb_user_video_log.video_id=tb_video_info.video_id
AND TIMESTAMPDIFF(DAY, start_time, (SELECT MAX(start_time) FROM tb_user_video_log)) < 30
GROUP BY tag
ORDER BY retweet_rate DESC;
首先是题意,视频播放日期start_time和整体的日期最大值之差小于30的,叫做“视频在有用户互动的最近一个月”。 第二,mark一下,上面要写成(SELECT MAX(start_time) FROM tb_user_video_log),而不能直接写MAX(start_time)。where后面不能跟集函数。顺便说一句,having后面倒是常跟集函数。