У меня есть таблица из 10 миллионов + строк, которая выглядит так:
id | time_read | value ----------------------- 9 1111111111 100 9 1111111222 200 9 1111111333 150 9 1111111444 225
Я хочу, чтобы AVG значение каждые 4 строки. Как это сделать в MySQL?
Кроме того, в дополнение к моему вопросу, как я могу это сделать, если бы я хотел, чтобы значение каждые 4 строки для всех данных за месяц и возвращало эту сумму за каждый месяц каждого года в таблице? Например, используя ту же таблицу в моем первом вопросе, в результате:
2008 | 12 | 500000 2009 | 01 | 450000 2009 | 02 | 475000
edit: Другими словами, общее количество каждого из четырех рядов, сгруппированных по году. Каждый раз time_read составляет 15 минут.
Раньше я делал что-то подобное, но это было недостаточно точно. Мне нужно усреднять каждые 4 строки и всего, что вместо того, чтобы брать сумму всех значений за месяц и делить на 4.
SELECT DATE_FORMAT(FROM_UNIXTIME(time_read),'%Y %m') as tr, DATE_FORMAT(FROM_UNIXTIME(time_read),'%Y') as year, DATE_FORMAT(FROM_UNIXTIME(time_read),'%m') as month, SUM(value) as value FROM table WHERE id = 9 GROUP BY tr