用需要判断是否排序的Col减去ROW_NUMBER排序,然后作为PARTITION条件在窗口函数中计数即可。
SELECT *
FROM
(
SELECT DISTINCT
author_id,
author_level,
COUNT(*) OVER(PARTITION BY author_id, const_col) AS days_cnt
FROM
(
SELECT
*,
DAY(answer_date) - ROW_NUMBER() OVER(PARTITION BY author_id ORDER BY answer_date) AS const_col
FROM
(
SELECT DISTINCT
author_id,
answer_date,
author_level
FROM author_tb au
JOIN answer_tb an USING (author_id)
) AS t1
) AS t2
) AS t3
WHERE days_cnt >= 3