|
|
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
Привет всем! В голове поселилась мысль, возможно ли такое реализовать: имеем таблицу например показания температур и дату(в данном случае в машине стоит микроконтроллер RaspberryPi который считывает температуру двигателя и заносит каждую минуту в бд). Например: id, val, day(datetime) захотелось сделать статистику, а именно - отображение: первые 5 позиций + максимальное значение (-2 предыдущих показания, текущее(макс), +2 следующих по порядку) + минимальное значение (-2 предыдущих показания, текущее(мин), +2 следующих по порядку) + последние 5 записей из таблицы. Хотел сделать в связке с php, но вот теперь как то кажется миссия невыполнима.. Думал получить примерно такую таблицу в итоге(со временем, в примере не рисую дабы большой объем получится): 1, 20, 2015-01-01 2, 21, 2015-01-01 3, 22, 2015-01-01 4 5 .... 20, 99, 2015-01-02 21, 100, 2015-01-02 22, 105, 2015-01-02 - это максимум 23, 104, 2015-01-02 24, 102, 2015-01-02 ... 50, 4, 2015-01-05 51, 3, 2015-01-05 52, 2, 2015-01-05 - это минимум 53, 3, 2015-01-05 54, 6, 2015-01-05 ... ну и тут последние 5 записей. подскажите пожалуйста, как можно такое решить, и возможно ли... ?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2015, 17:21:03 |
|
||
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
Имхо, это лучше делать при выводе (в данном случае это php, как я понял). Максимум - величина, которая одновременно больше величины предыдущей и следующей записей. Минимум - величина, которая одновременно меньше величины предыдущей и следующей записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2015, 17:24:15 |
|
||
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
ну а как это в коде будет ? получается что нужно сначала найти максимум, а потом по максимуму искать +-, т.е. получается примерно так ? select *(или id, val, dat) from table where val = (select max(val) from table) а как при этому +- сделать ? да и сама конструкция не очень нравится нахождения максимума/минимума.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2015, 18:11:37 |
|
||
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
Не, на SQL это будет банальный SELECT ... FROM ... ORDER BY day. А на клиенте держите скользящее окно в пять записей. Если 3-я запись окна удовлетворяет условию минимума/максимума, то выводите содержимое всего окна. Потом продвигаете окно на одну запись (самую старую выкидываете, новую читаете). Попутно надо определиться, что делать в случаях, когда максимумы/минимумы идут плотнее, чем через 5 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2015, 18:20:53 |
|
||
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
miksoftА на клиенте держите скользящее окно в пять записей. Если 3-я запись окна удовлетворяет условию минимума/максимума, то выводите содержимое всего окна.эээ... как я понял, ТСу нужен "общий" максимум (по всей таблице), а не куча локальных максимумов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2015, 06:16:28 |
|
||
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
RomkA-Romka, подскажите пожалуйста, как можно такое решить, и возможно ли... ?))) Да, возможно. надо написать запрос или хранимую процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2015, 08:25:28 |
|
||
|
Алгоритм начало+конец+минимум+максимум, задача на смекалку..
|
|||
|---|---|---|---|
|
#18+
tanglirmiksoftА на клиенте держите скользящее окно в пять записей. Если 3-я запись окна удовлетворяет условию минимума/максимума, то выводите содержимое всего окна.эээ... как я понял, ТСу нужен "общий" максимум (по всей таблице), а не куча локальных максимумов.Да, похоже, я неправильно понял. Ну тогда задача еще упрощается - 4 SELECT-а через UNION. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2015, 09:36:32 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38889073&tid=1833527]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 360ms |

| 0 / 0 |
