select video_id,round(sum(if_over)/count(if_over),3) as rate
from (
select video_id,if(diff>=duration,1,0) as if_over
from
(
select
t1.video_id,timestampdiff(second,start_time,end_time) as diff,duration
from tb_user_video_log t1
left join tb_video_info t2 on t1.video_id = t2.video_id
where year(start_time) = 2021
) t
) t
group by video_id
order by rate desc
select
tag,
concat(round((round(sum(player_rate)/count(player_rate),4)*100),2),'%') as rate
from (
select tag,if(diff/duration>1,1,diff/duration) as player_rate
from
(
select
t1.video_id,t2.tag,timestampdiff(second,start_time,end_time) as diff,duration
from tb_user_video_log t1
left join tb_video_info t2 on t1.video_id = t2.video_id
) t
) t
group by tag
having round(sum(player_rate)/count(player_rate),2) >0.6
order by rate desc
select tag,sum(if_retweet),round(sum(if_retweet)/count(if_retweet),3) as rate
from tb_user_video_log t1
left join tb_video_info t2
on t1.video_id = t2.video_id
where datediff(date((select max(start_time) FROM tb_user_video_log)), date(t1.start_time)) < 30
group by tag
order by rate desc
select
author,
month,
round(sum(if_follow)/count(if_follow),3) as fans_growth_rate,
total_fans
from (
select
*,sum(if_follow) over(partition by author order by month) as total_fans
from (
select
t1.video_id,
date_format(end_time,'%Y-%m') as month,
if(if_follow=2,-1,if_follow) as if_follow,
author
from tb_user_video_log t1
left join tb_video_info t2 on t1.video_id = t2.video_id
where year(end_time) = 2021
) t
) t
group by author,month,total_fans
order by author,total_fans