with t1 as ( select author_id, count(*) posts_30d, sum(like_cnt) likes_30d, if( count(*) = 0, 0, ROUND(sum(like_cnt) / count(*), 2) ) avg_likes_30d from post where datediff( ( select max(publish_ts) from post ), publish_ts ) <= 30 group by author_id ) select t1.author_id, author_name, posts_30d, ...