一个不用date_add 的方法 select round(sum(sa=1)/count(user_id),3) from (select * ,rank() over(partition by user_id order by date) as ranking from (select user_id,date,datediff(de,date) as sa from (select user_id,date, LEAD(date,1) OVER (PARTITION BY user_id ORDER BY (date) )as de from login) as a) as b ) as...