select round(
(
select count(distinct a.player_id)
from Activity as a inner join Activity as b
on a.player_id = b.player_id and DateDiff(a.event_date, b.event_date) = 1 and b.event_date = (
select min(event_date)
from Activity
where player_id = b.player_id
)
)
/
(
select count(distinct player_id)
from Activity
)
, 2) as fraction
这题是真的恶心,需要注意的点就是select count外面必须得加个括号
第二点是如果用where联查,是创建笛卡尔积,比inner join效率慢