select round(re_cnt/sh_cnt,4) fans_ctr
from (
    select sum(read_num) re_cnt,
    sum(show_num) sh_cnt
    from a join b on a.author_id=b.author_id join c on b.content_id=c.content_id
    where c.fans_id =a.fans_id 
) as m

之前总是考虑仅仅通过c.fans_id=a.fans_id 能否保证粉丝就是该作者的粉丝,需不需要用in,其实是可以保证的,因为这是三层链接

  1. 三层连接的作用:a 表(创作者与粉丝关系) → b 表(创作者与内容关系) → c 表(粉丝行为)通过 a.author_id = b.author_id,确保我们只处理当前作者的内容。
  2. 通过 b.content_id = c.content_id,确保我们只处理这些内容的粉丝行为。
  3. 通过 c.fans_id = a.fans_id,确保这些粉丝行为确实来自当前作者的粉丝。