Кто-то может прийти и дать вам ответ с полным кодом, но я бы поделился с этим, разбив его на несколько более мелких проблем / решений:
(1) Создать временную таблицу с интервалами. Смотрите принятый ответ на этот вопрос:
Получить список дат между двумя датами
Этот ответ был для MySQL, но вы должны начать. Поиск в Google «Создание интервалов SQL» также должен дать дополнительные способы для достижения этой цели. Вы захотите использовать MAX (DateTime) и MIN (DateTime) из основной таблицы в качестве входных данных для любого метода, который вы используете (и 10 секунд для диапазона, очевидно).
(2) Соединить временную таблицу с основной таблицей с условием соединения (псевдокод):
FROM mainTable m INNER JOIN #tempTable t ON m BETWEEN t.StartDate AND t.EndDate
(3) Теперь это должно быть так же просто, как правильно ВЫБРАТЬ и Сгруппировать:
SELECT
AVG(m.A)
FROM
mainTable m
INNER JOIN #tempTable t ON m BETWEEN t.StartDate AND t.EndDate
GROUP BY
t.StartDate
Редактировать: , если вы хотите видеть интервалы, в которых нет записей (среднее нулевое значение), вам придется изменить порядок запроса, использовать LEFT JOIN и COALESCE для m.A (см. Ниже). Если вас не интересует видение таких элементов, решение OCary лучше / чище.
SELECT
AVG(COALESCE(m.A, 0))
FROM
#tempTable t
LEFT JOIN mainTable m ON m BETWEEN t.StartDate AND t.EndDate
GROUP BY
t.StartDate