这一题我写了个简洁的方法,不用窗口函数。我一开始也想要窗口函数的,但是我发现有单天重复购买的,没法在窗口函数中去重(当时也没想到先去重再套个子查询开窗)。 我的思路是先在子查询中查到去重后每个用户每天的购买情况,再在外层使用having计算用户ID大于等于2个的情况,去查相应的结果: select user_id , count(1) days_count from ( select distinct user_id , sales_date from sales_tb group by 1,2 ) a group by 1 having count(1)>=2 order by 1