WITH t AS ( SELECT author_id, max( publish_ts ) AS fst FROM post GROUP BY 1 ) SELECT p.author_id, author_name, count(*) AS posts_30d, sum( like_cnt ) AS likes_30d, COALESCE ( round( sum( like_cnt )/ count(*), 2 ), 0 ) AS avg_likes_30d FROM post p LEFT JOIN author a ON p.author_id = a.author_id LEFT JOIN t ON t.author_id = p.author_id WHERE publish_ts BETWEEN DATE_sub( fst, INTERVAL 29 DAY ) AND fst GROUP BY 1 order by 4 desc,3 desc,1 limit 5

京公网安备 11010502036488号