我这个也通过了~其实原答主的用的-1day换成(user_id, date_add(date, interval 1 day) in (select...from)就好理解了。其实就是in之前的和in之后的差一天就行。 代码如下: SELECT date, IFNULL(ROUND(( SUM(CASE WHEN (user_id, DATE_ADD(date, INTERVAL 1 DAY)) IN (SELECT user_id, date FROM login) AND (user_id, date) IN (SELECT user_id, MIN(date) FROM login GROUP BY user_id) THEN 1 ELSE 0 END))/ (SUM(CASE WHEN (user_id, date) IN (SELECT user_id, MIN(date) FROM login GROUP BY user_id) THEN 1 ELSE 0 END)), 3),0) AS p FROM login GROUP BY date ORDER BY date;
29

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务