@Nosezz

Как достать промежуток между транзакциями?

Как достать промежуток между транзакциями А и Б, Б и В, В и Г одного пользователя?
Пусть:
date– дата транзакции
user_id– id клиента
order_id -id заказа
66741138bd1e1074248112.jpeg
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
@alexalexes
Нужно, чтобы СУБД поддерживала оконные функции (если у вас 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы