Среднее значение - это общая разница, деленная на единицу меньше, чем количество аренды.Таким образом, вам не нужны оконные функции:
SELECT bikeid,
DATE_DIFF(MAX(DATE(start_time)), MIN(DATE(start_time)), day) / NULLIF(COUNT(*) - 1, 0) as avg_period
FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
GROUP BY bikeid ;
Выше исправляет ваш запрос и отвечает на ваш вопрос.Я не уверен, что он делает что-то полезное, потому что велосипеды сдаются в аренду несколько раз в день (в этом суть программы проката велосипедов общего пользования).
По крайней мере, вы можете использовать меньшую единицувремя:
SELECT bikeid,
TIMESTAMP_DIFF(MAX(start_time), MIN(start_time), second) / NULLIF(COUNT(*) - 1, 0) as avg_period_in_seconds
FROM `bigquery-public-data.austin_bikeshare.bikeshare_trips`
GROUP BY bikeid ;