思路1
SELECT player_id, MIN(event_date) FROM Activity GROUP BY player_id;SELECT COUNT(DISTINCT a.player_id)
FROM Activity a JOIN
(SELECT player_id, MIN(event_date) AS event_date FROM Activity GROUP BY player_id) b
ON a.player_id=b.player_id AND DATEDIFF(a.event_date, b.event_date)=1;SELECT COUNT(DISTINCT player_id)
FROM Activity;SELECT ROUND(
(
SELECT COUNT(DISTINCT a.player_id)
FROM Activity AS a JOIN
(SELECT player_id, MIN(event_date) as event_date
FROM Activity
GROUP BY player_id) AS b
ON
a.player_id=b.player_id AND
DATEDIFF(a.event_date, b.event_date)=1
) /
(
SELECT COUNT(DISTINCT player_id)
FROM Activity
), 2) AS fraction;Last updated