LINUX.ORG.RU

MySQL, обработка части запроса

 


0

2

Надо выбрать определённое количество записей (пусть будет 5) от текущей и посчитать, например среднее. Таблица упорядочена по id, но значения id не линейны, т.е. они растут но без определенного шага.

SELECT max(id), AVG(value) FROM table_name WHERE id > 12345 ORDER BY id LIMIT 5;

Такой запрос в результат считает от всей выборки, а не от 5 записей.

Попробовал так:

SELECT max(id), AVG(value) FROM table_name WHERE id IN (SELECT id FROM table_name WHERE id > 12345 ORDER BY id LIMIT 5);

ругается doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Есть какое-нибудь нормальное решение или просто чанками выбирать, да на стороне клиента обрабатывать результат?

★★★★★

SELECT MAX(id), AVG(val) FROM (SELECT id, val FROM table_name WHERE id > 12345 ORDER BY id LIMIT 5) tbl_alias;
surefire ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.