此题共包含两张表:
表1:answer_tb
表2:author_tb
要解决的问题:
请你统计最大连续回答问题的天数大于等于3天的用户及其等级,若有多条符合条件的数据,以author_id升序排序
解题思路:
- 统计每个用户连续回答问题的天数
- 取最大连续天数大于等于3的
- 获取这些用户的等级
- 若有多条符合,取author_id升序排序
SELECT author_id, author_level, days_cnt
from(
SELECT author_id, max(rank1) days_cnt
from(
select author_id, answer_date,
DENSE_RANK() over (partition by author_id ORDER BY answer_date) rank1
from answer_tb
) t1
GROUP BY author_id
HAVING max(rank1) >=3
) t2
join author_tb using(author_id)
ORDER BY author_id