首先:指出某种思路不正确。 每人的最小日期的次日有登录则记成功,否则失败。(X) 然后:指出正确的思路。 每人的任何日期的次日有登录则记成功,否则失败。(V) select round(COUNT(distinct case when datediff(b.date, a.date) = 1 then a.user_id end ) / count(distinct a.user_id), 3) from login a join login b on a.user_id = b.user_id