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

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

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

此题共包含两张表:

表1:用户-视频互动表tb_user_video_log

表2:短视频信息表tb_video_info

要解决的问题:

统计在有用户互动的最近一个月(按包含当天在内的近30天算,比如10月31日的近30天为10.2~10.31之间的数据)中,每类视频的转发量和转发率(保留3位小数)。

注:转发率=转发量÷播放量。结果按转发率降序排序。

解题思路:

  1. 计算播放量和转播量
  2. 根据1计算转发率,转发量/播放量,保留3位
  3. 筛选条件:就是有播放量的视频的最大日期 减去 30天(计算时不用区分tag)
  4. 按转发率降序排序

知识点:

  1. datediff(date1,date2) , 返回起始时间 date1 和结束时间 date2 之间的天数
  2. date_sub(date,INTERVAL expr type), 函数从日期减去指定的时间间隔。
  3. dateadd(date,INTERVAL expr type), 函数从日期增加指定的时间间隔。

Invalid use of group function

出现该错误提示的主要原因是聚合函数不可用,这里要特别区分where和having:

  • where 子句的作用是在分组前过滤数据,where条件中不能包含聚组函数。where通常与运算符一起出现(=、<、>、<>、>=、<=、like、between等)

  • having 子句的作用是在分组之后过滤数据,条件中经常包含聚组函数 (sum、count、avg等)

where和having

  • 标量子查询(一列一行)

  • 列子查询(一列多行),搭配如下操作符使用

    ① in/not in 等于列表中的任意一个

    ② any/some 和子查询返回的某一个值比较

    ③ all 和子查询返回的所有值比较

  • 行子查询(一行多列或多行多列),由于筛选条件的判断符号必须相同,较少使用。

SELECT tag, 
       SUM(if_retweet) retweet_cnt, 
       ROUND(SUM(if_retweet)/COUNT(*), 3) retweet_rate
FROM tb_user_video_log
LEFT JOIN tb_video_info using(video_id)
WHERE DATEDIFF(DATE((select max(start_time) FROM tb_user_video_log)), DATE(start_time)) <= 29

/* WHERE DATE(start_time) > (
    SELECT max(DATE(start_time)),
	DATE_SUB(MAX(DATE(start_time)), INTERVAL 30 DAY)
    FROM tb_user_video_log
*/

GROUP BY tag
ORDER BY retweet_rate desc
全部评论

相关推荐

头像
04-27 15:11
已编辑
华东师范大学 算法工程师
暑期实习从2月开始投,面了两个月,流程该挂的都挂完了,腾讯字节一共号称是1.7w个hc,不知道都发给谁了,估计今年秋招要难顶。Timeline米哈游、美团、蚂蚁、微软等公司直接简历挂穿,没进面。携程:3.3&nbsp;投递、测评3.12&nbsp;笔试3.18&nbsp;一面3.25&nbsp;二面4.13&nbsp;ai面(hr面)4.14&nbsp;英语测评4.23&nbsp;offer(已拒)腾讯:2.6&nbsp;测评2.28&nbsp;wxg一面3.5&nbsp;wxg二面(挂)3.11&nbsp;teg一面3.21&nbsp;teg二面(取消)3.31&nbsp;teg一面4.10&nbsp;teg二面(挂)4.21&nbsp;wxg一面4.24&nbsp;wxg二面(挂)字节:1.28&nbsp;aml约面(取消)3.17&nbsp;火山一面(挂)4.8&nbsp;aml一面(挂)4.20&nbsp;抖音data一面(挂)阿里:3.23&nbsp;投递、测评3.28&nbsp;笔试3.31&nbsp;淘天一面4.8&nbsp;钉钉一面4.9&nbsp;淘天二面4.10&nbsp;阿里控股一面4.12&nbsp;钉钉二面(取消)4.15&nbsp;淘天hr面4.16&nbsp;淘天offer(已接)4.21&nbsp;高德一面(取消)4.22&nbsp;淘宝闪购一面(取消)面试最大的感触是,现在撞上ai转型,一堆老业务急着转向,新业务非常不成熟,研究型的组bar非常高根本进不去,业务侧挂着算法的岗位干的都是工程活,面试却又要问算法,另外agent的落地也远没有那么广,绝大多数还是那套写死的系统调一下llm&nbsp;api或者做做rag,其余少部分真的在搭agent的,基本不能在线上服务用什么很智能的模型,现阶段成本太高,进去大概率就是给垃圾模型从工程方面兜底,除了业务场景的应用和数据经验以外,技术方面很难有什么提升。算法岗做不了基模的还是去搜广推好,之前判断失误了完全没投,秋招不知道还进不进得去。
嵌入式的小白:不错啊,淘天也是挺好的,恭喜
我的求职进度条
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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