题解 | 任意两个连续自然月练题次数大于1的用户
任意两个连续自然月练题次数大于1的用户
https://www.nowcoder.com/practice/a4cea6942a4f4354b0a0181aa5f446d2
### 逻辑 先求出用户的答题次数 再将当月表跟次月表相连接 最后再筛选 WITH monthly_practice AS( SELECT device_id, YEAR(event_date) year, MONTH(event_date) month, COUNT(question_id) practice_cnt FROM question_practice_detail GROUP BY YEAR(event_date),MONTH(event_date),device_id ), consecutive_month AS( SELECT t1.device_id, t1.practice_cnt, t2.practice_cnt practice_cnt2 FROM monthly_practice t1 LEFT JOIN monthly_practice t2 ON t1.device_id = t2.device_id WHERE (t1.year = t2.year AND t1.month+1 = t2.month) OR (t1.year+1 = t2.year AND t1.month=12 AND t2.month=1) ) SELECT DISTINCT device_id FROM consecutive_month WHERE practice_cnt+practice_cnt2 >1 order by device_id DESC