题解 | #每类视频近一个月的转发量/率#

每类视频近一个月的转发量/率

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后面倒是常跟集函数。

全部评论
(SELECT MAX(start_time) FROM tb_user_video_log)为什么这里不加括号就报错啊
点赞 回复 分享
发布于 2022-10-30 00:25 湖南
这"笛卡尔积"用的毫不犹豫啊
点赞 回复 分享
发布于 2022-05-10 13:10
能说一下为什么不能直接写max(time)吗,这里没搞懂。谢谢啦
点赞 回复 分享
发布于 2022-02-13 22:42

相关推荐

评论
23
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务