题解 | #近一个月发布的视频中热度最高的top3视频#

近一个月发布的视频中热度最高的top3视频

https://www.nowcoder.com/practice/0226c7b2541c41e59c3b8aec588b09ff

SELECT
    tuv.video_id video_id,
    ROUND(
    	(
        100 * (
            SUM(
                IF (
                    timestampdiff(second,start_time,end_time) >= tvi.duration,
                    1,
                    0
                )
            ) / COUNT(tvi.video_id)
        ) + 5 * SUM(if_like) + 3 * COUNT(comment_id) + 2 * SUM(if_retweet)
    ) * (
        1 / (
            DATEDIFF((
                SELECT
                    DATE(MAX(end_time))
                FROM
                    tb_user_video_log
            ),DATE(MAX(end_time))) + 1
        )
    )) hot_index
FROM
    tb_user_video_log tuv,
    tb_video_info tvi
WHERE
	tuv.video_id = tvi.video_id
    and
    DATEDIFF (
        
        DATE(
            (SELECT
               MAX(end_time)
            FROM
                tb_user_video_log)
        ),DATE(release_time)
    ) <= 29
GROUP BY
    tuv.video_id
order by hot_index desc
limiT 3

思路:

1.连表

2.筛选近一个月发布的 [T-29,整体最新发布时间T]

3.按视频id分组

4.完播率=【如果(每条记录的结束-开始)>= 时长 则 /时长 然后求平均】

5.点赞数、评论数、转发数都求和

6.新鲜度=1/(最近无播放天数+1) 最近无播放天数=整体最大日期-该视频最大日期

7.排序取前三

注意:

1.DATEDIFF参数是日期不是时间

2.输出为整数

3.尽量用函数来日期/时间相减

4.DATEDIFF(d1, d2)和DATEDIFF(d2, d1)的结果并不一样,正或负

全部评论

相关推荐

都送什么礼物吗?如果送的话,价格大概都是多少?辛苦大家给个参考啦!
牛客73617529...:要送就送那种没必要买又很贵的,假设一个打瓦的显示屏 鼠标 键盘都很贵,你送这些突出不了价值,直接送一个很贵的鼠标垫包记住你的。
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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