У меня есть таблица, где у меня есть определенные журналы и время их ответа. Я могу запросить таблицу, чтобы получить среднее время ответа за последние 1000 записей, выполнив:
SELECT timestamp, count(*), avg(response_time) FROM table ORDER BY timestamp DESC LIMIT 1000
-- timestamp count(*) avg(response_time)
-- 2020-03-17 11:58:37 1000 0.27
Однако я хотел бы получить это за последние N записей на тысячу записей (чтобы увидеть прогресс время отклика с течением времени, кусками по 1000 запросов), то есть что-то вроде:
SELECT timestamp, count(*), avg(response_time) FROM table ORDER BY timestamp DESC LIMIT 1000
UNION
SELECT timestamp, count(*), avg(response_time) FROM table ORDER BY timestamp DESC LIMIT 1000, 1000
UNION ...
-- timestamp count(*) avg(response_time)
-- 2020-03-17 11:58:37 1000 0.27
-- 2020-03-17 11:38:09 1000 0.52
-- 2020-03-17 11:04:11 1000 1.04
-- and keep going, in groups of 1000 records...
Был бы более чистый способ сделать это, где я мог бы сгруппировать вещи по кусочкам по 1000?