У меня есть таблица, в которой много строк, причем строки встречаются со скоростью 400-500 в минуту (я знаю, что это не так много), но мне нужно провести своего рода анализ трендаданные, которые были собраны за последнюю 1 минуту.
Вместо того, чтобы извлекать все записи, которые были введены, а затем обрабатывать каждую из них, я действительно хотел бы иметь возможность выбрать, скажем, 10 записей - которые происходят в несколько равномерном распределении в течение указанного периода времени..
ID DEVICE_ID LA LO CREATED
-------------------------------------------------------------------
1 1 23.4 948.7 2018-12-13 00:00:01
2 2 22.4 948.2 2018-12-13 00:01:01
3 2 28.4 948.3 2018-12-13 00:02:22
4 1 26.4 948.6 2018-12-13 00:02:33
5 1 21.4 948.1 2018-12-13 00:02:42
6 1 22.4 948.3 2018-12-13 00:03:02
7 1 28.4 948.0 2018-12-13 00:03:11
8 2 23.4 948.8 2018-12-13 00:03:12
...
492 2 21.4 948.4 2018-12-13 00:03:25
493 1 22.4 948.2 2018-12-13 00:04:01
494 1 24.4 948.7 2018-12-13 00:04:02
495 2 27.4 948.1 2018-12-13 00:05:04
Учитывая этот набор данных, вместо того, чтобы извлекать все эти строки, я хотел бы, возможно, извлекать строки из набора каждые 50 записей (10 строк для примерно ~ 500 возвращаемых строк).
Это не обязательно должно быть точно, мне просто нужен образец для выполнения какой-либо линейной регрессии.
Возможно ли это вообще?Я могу сделать это в своем коде приложения, если это необходимо, но я хотел посмотреть, есть ли функция или что-то в MySQL, которая бы справилась с этим.
Редактировать Вот мой запроспопробовал, что работает на данный момент - но я хотел бы, чтобы результаты были более равномерно распределены, а не RAND ().
SELECT * FROM (
SELECT * FROM (
SELECT t.*, DATE_SUB(NOW(), INTERVAL 30 HOUR) as offsetdate
from tracking t
HAVING created > offsetdate) as parp
ORDER BY RAND()
LIMIT 10) as mastr
ORDER BY id ASC;