Среднее значение - это только наибольшее значение минус наименьшее, деленное на единицу, меньше количества значений. Итак:
select datediff(max(date), min(date)) / nullif(count(*) - 1, 0)
from t;
Это легко увидеть, если взглянуть на цифры:
1
5 . . . 4
10 . . . 5
19 . . . 9
Средняя разница составляет (4 + 5 + 9) / 3 = 6.
Не случайно и (19 - 1) / 3 = 6. Это математическая уверенность.
Вы можете легко увидеть это. Средняя разница:
( (5 - 1) + (10 - 5) + (19 - 10) ) / 3
Вы можете изменить это:
( -1 + (5 - 5) + (10 - 10) + 19 ) / 3
, что:
( 19 - 1 ) / 3