Среднее с начала года

У меня есть таблица MySQL, показанная на рисунке. Результат, который я хочу получить, находится в столбце "средний":

my_table

Я хотел бы создать запрос для расчета среднего значения с начала года (1 января). Каждая строка содержит среднее значение между началом года и текущей строкой. Каждое 1 января среднее значение должно быть обнулено.

1 ответ

Решение

Один метод использует коррелированный подзапрос:

select date, value,
       (select avg(value) from t t2 where t2.date <= t.date) as running_avg
from t
order by date;

Это делает некоторые предположения:

  • "a", "b" и т. д. являются числами, а не строками.
  • a+b/2 действительно означает (a + b) / 2 и так далее.
  • Если вам нужно только с этого года, то условие должно включать год.
Другие вопросы по тегам