2012-05-15 4 views
2

У меня есть база данных со многими строками, и я бы хотел, чтобы последовательная совокупность произносила 10 строк и вычисляла среднее значение одного столбца. Так что строки с 1 по 10 будут иметь среднее значение no. один, ряд 11-20 будет средним значением no. два и т. д.Совокупное количество строк

Можно ли это сделать в MySql?

+1

У вас есть идентификатор или что-то в этом роде? Поместите здесь схему таблицы –

ответ

2

Вам понадобится GROUP BY FLOOR(something/10), чтобы сгруппировать каждые 10 строк. Для этого лучше всего использовать основной ключ автоинкремента без пробелов.

SELECT FLOOR(something/10) as start_id, AVG(yourAmount) 
FROM yourTable 
GROUP BY FLOOR(something/10) 
0

Мне удалось решить проблему заказа, используя псевдонимы и группу/порядок теми, кто в одном простом запросе.

SELECT FLOOR(id/10) AS id_tmp, id AS sorter, AVG(col_1) AS col_1_avg 
FROM my_table 
GROUP BY id_tmp 
ORDER BY sorter DESC 

Я не уверен, почему это работает, но в MySQL 5.0 все равно работает.

Смежные вопросы