Я строю приложение cake3, который собирает много данных временных рядов в таблице double_measures:Предельные/RESAMPLE данные в CakePhp3
select * from double_measures limit 20;
+----+--------------------+---------------------+-------+--------+
| id | physical_sensor_id | time | milis | value |
+----+--------------------+---------------------+-------+--------+
| 1 | 1 | 2016-11-25 00:50:01 | 0 | 306.15 |
| 2 | 2 | 2016-11-25 00:50:01 | 0 | 300.15 |
| 3 | 3 | 2016-11-25 00:50:01 | 0 | 308.15 |
| 4 | 4 | 2016-11-25 00:50:01 | 0 | 308.15 |
| 5 | 6 | 2016-11-25 00:50:01 | 0 | 310.15 |
| 6 | 7 | 2016-11-25 00:50:01 | 0 | 310.15 |
| 7 | 8 | 2016-11-25 00:50:01 | 0 | 305.15 |
| 8 | 9 | 2016-11-25 00:50:01 | 0 | 306.15 |
| 9 | 10 | 2016-11-25 00:50:01 | 0 | 304.15 |
| 10 | 11 | 2016-11-25 00:50:01 | 0 | 309.15 |
| 11 | 1 | 2016-11-25 00:55:01 | 0 | 306.15 |
| 12 | 2 | 2016-11-25 00:55:01 | 0 | 300.15 |
| 13 | 3 | 2016-11-25 00:55:01 | 0 | 308.15 |
| 14 | 4 | 2016-11-25 00:55:01 | 0 | 308.15 |
| 15 | 6 | 2016-11-25 00:55:01 | 0 | 310.15 |
| 16 | 7 | 2016-11-25 00:55:01 | 0 | 310.15 |
| 17 | 8 | 2016-11-25 00:55:01 | 0 | 305.15 |
| 18 | 9 | 2016-11-25 00:55:01 | 0 | 306.15 |
| 19 | 10 | 2016-11-25 00:55:01 | 0 | 304.15 |
| 20 | 11 | 2016-11-25 00:55:01 | 0 | 309.15 |
+----+--------------------+---------------------+-------+--------+
В настоящее время я выбирающий значения в следующем запросе $measures = $table->find('all',['order'=>['id'=>'DESC']])->select(['time','milis','value'])->where(['physical_sensor_id'=>$sid])->limit($limit);
, который возвращает последний $ limit для данного датчика.
Однако, я предпочел бы, чтобы равномерно повторно образец таблицы, чтобы получить каждый п-й величины, с п быть
[число значений для $ с.и.д.]/$ предел.
Благодаря How do you select every n-th row from mysql, я знаю, как это сделать в MySql, но есть ли способ сделать это в Cakephp3?
Конечно, я мог бы повторно опросить запрос AFTER, но это не вариант, так как у меня закончилась нехватка памяти для наборов результатов HUGE.
Связанное решение использует вычисляемый столбец, добавляющий последовательную нумерацию к внутреннему запросу, а затем выбрав по модулю операцию на созданной виртуальной таблице. Есть ли способ добавить такой вычисленный столбец на уровне запроса (до того, как какие-либо данные действительно будут извлечены) в торте? Могу ли я просто создать представление и использовать этот вид? Как бы я это сделал, имея в виду, что я хочу выбрать физический_sensor_id? –