l
select sum(subscriber) subscribers, sum(unsubscriber) unsubscribers, sum(spammer) spammers, sum(unsub_fr_sub) unsub_fr_subs
from (
select user_id,
max(action_type_id=1) subscriber,
max(action_type_id=0) unsubscriber,
length(arrayFilter(i,j -> abs(i.1-j.1)<60 and i.2<>j.2, arrayPopBack(arraySort(groupArray((date,action_type_id))) as d) ,arrayPopFront(d)))>=1 spammer,
(subscriber and unsubscriber) unsub_fr_sub
from Z group by user_id
)