with cte as (
select uid,count(*) as times,
count(distinct login_date) as days,
max(login_date) as rec_date,
max(max(login_date))over() as cur_date
from user_login_tb
group by uid )
select uid,days,times
from cte
where (times>=4 or days>=3) and datediff(cur_date,rec_date) >29
order by days desc ,times desc

京公网安备 11010502036488号