select 
	page_name,avg(rnk) as avg_rnk
from
(
	select 
		user_id,
		page_name, 
		rank()over(partition by user_id,page_name order by min(ts)) as rnk
	from 
	(
		select 
			user_id,
			page_name,
			min(ts) as min_ts
		from events
		group by user_id,page_name
	)tmp1
	group by user_id,page_name
)tmp2
group by page_name