Я пытаюсь вычислить время между первым и вторым заказом в моей таблице электронной торговли (заказы) для каждого клиента.
Я нашел этот документ полезным для выбора всех верхних n строк в группе, но я не уверен, как связать его с вычислением времени второго порядка - время первого заказа https://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/
Вот что я написал до сих пор:
SELECT customer_id, datediff(day, min(order_time), max(order_time))
as avg_time
FROM ORDERS AS so
WHERE
(select count(*) from ORDERS as se
where se.customer_ID = so.customer_ID and se.order_time <= so.order_time
) <= 2
group by customer_id
having count(distinct order_time)>1
order by avg_time desc) t
Однако, это неправильно, потому что он вычисляет максимум в начале из весь набор данных, который будет последним заказом, а не вторым.
Заранее спасибо!