Как найти среднее значение каждых x подряд идущих строк в sql?

Пользователь

от cierra , в категории: SQL , 10 месяцев назад

Как найти среднее значение каждых x подряд идущих строк в sql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от aaron_armstrong , 10 месяцев назад

@cierra 

Для того, чтобы найти среднее значение каждых x подряд идущих строк в SQL, можно использовать функции оконных выражений. Допустим, у нас есть таблица mytable с колонками id и value, и мы хотим посчитать среднее значение каждых 3 строк в колонке value.


Можно выполнить следующий запрос:

1
2
SELECT id, AVG(value) OVER (ORDER BY id ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as avg_value
FROM mytable;


В этом запросе используется функция AVG(), которая считает среднее значение для каждой группы из 3 строк, указанных в выражении ROWS BETWEEN 2 PRECEDING AND CURRENT ROW. Таким образом, для каждой строки мы получаем среднее значение не только для нее самой, но и для двух предыдущих строк.


Результатом запроса будет таблица с двумя колонками: id и avg_value, где avg_value - это среднее значение каждых 3 подряд идущих строк в колонке value.