Отчет медианное время между покупками клиента

Хочу сделать отчет, в котором выводится время между покупками клиента.

Есть таблица со столбцами:

timestamp - это поле в запросе я перевожу в дату
user_id - id клиента, использую как запись о покупке

Пробовал сделать запрос, в котором выводится среднее количество дней между покупками:

WITH cta AS (
SELECT user_id, DATE_FORMAT(FROM_UNIXTIME(TIMESTAMP),'%Y-%m-%d') AS DATE
FROM cscart_orders)

SELECT user_id, DATEDIFF(MAX(DATE),MIN(DATE)) / (COUNT(DATE) - 1) AS avr_days_between_purchase
FROM cta
GROUP BY user_id
HAVING IS NOT NULL

Но загвоздка в том, что если у клиента даты покупок будут 2021-01-01, 2021-01-02, 2021-01-03, 2021-07-01, то среднее время между покупками будет 60 дней, что не отражает реальной ситуации.

Мне же нужно получить медианное число дней между покупками. Ума не приложу как это реализовать. Прошу помощи


Ответы (0 шт):