Нужно, чтобы СУБД поддерживала оконные функции (если у вас MySQL 5 версии, то мужайтесь).
select user_id,
order_id,
time,
lag(time) over (partition by user_id order by order_id) as before_time, -- предыдущее значение time в пределах user_id по сортировке order_id
time - lag(time) over (partition by user_id order by order_id) as period, -- математика вычитания времени зависит от СУБД.
max(time) over (partition by user_id) - min(time) over (partition by user_id) as user_period -- период между самой ранней записью по пользователю и самой поздней записью по пользователю
from t