题解 | #每个创作者每月的涨粉率及截止当前的总粉丝量#
每个创作者每月的涨粉率及截止当前的总粉丝量
https://www.nowcoder.com/practice/d337c95650f640cca29c85201aecff84
明确题意:
计算2021年里每个创作者每月的涨粉率及截止当月的总粉丝量
问题分解:
关联用户-视频互动表和短视频信息表:join tb_user_video_log tuvl on tvi.video_id = tuvl.video_id
筛选2021年的记录:where year(start_time) = 2021
按创作者和月份分组:group by author,month
计算涨粉率:sum(case if_follow when 1 then 1 when 2 then -1 else 0 end) / count(*)
计算截至当月的总粉丝量:sum(sum(case if_follow when 1 then 1 when 2 then -1 else 0 end)) over(partition by author order by date_format(start_time,'%Y-%m'))
细节问题:
按创作者ID、总粉丝量升序排序:order by author,total_fans
保留三位小数:round(x,3)
select author,
date_format(start_time,'%Y-%m') month,
round(sum(case if_follow
when 1 then 1
when 2 then -1
else 0
end) / count(*), 3) fans_growth_rate,
sum(sum(case if_follow
when 1 then 1
when 2 then -1
else 0
end)) over(partition by author order by date_format(start_time,'%Y-%m')) total_fans # 累加粉丝数需要开窗
from tb_video_info tvi
join tb_user_video_log tuvl on tvi.video_id = tuvl.video_id
where year(start_time) = 2021
group by author,month
order by author,total_fans;

滴滴公司福利 1815人发布