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

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

https://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad

/*select date_sub(max(date(end_time)),interval 29 day)
from tb_user_video_log
where if_retweet = 1
*/
select tag
        ,sum(if_retweet) AS retweet_cnt
        ,round(sum(if_retweet) / count(*),3) AS retweet_rate
from tb_user_video_log tl
inner join tb_video_info ti on tl.video_id = ti.video_id
/*where datediff(date((select max(start_time) from tb_user_video_log where if_retweet=1)),date(start_time))<=29*/
where start_time >= (select date_sub(date(max(start_time)),interval 29 day) from tb_user_video_log where if_retweet=1)
group by tag
order by retweet_cnt desc

mysql中select date('2021-10-31 21:02:20') -30 AS new_date的结果是¹:

| new_date || 1991-10-31 |

这是因为mysql会把date('2021-10-31 21:02:20')转换为一个整数,然后减去30,再转换回日期。如果想要从日期中减去30天,可以使用DATE_SUB函数²³,例如:

SELECT DATE_SUB (date('2021-10-31 21:02:20'), INTERVAL 30 DAY) AS new_date

这样的结果是:

| new_date || 2021-10-01 |

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务