with t1 as(
    select answer_date,
            author_id,
            dense_rank() over(partition by author_id order by answer_date) rn
    from answer_tb
)
select author_id,author_level,max(days) days_cnt
from(
    select author_id,count(distinct answer_date) days
    from t1
    group by author_id,date_sub(answer_date,interval rn day)
)t2 left join author_tb using(author_id)
group by author_id,author_level
having days_cnt >= 3