Как найти самую высокую температуру, зафиксированную на каждый день - PullRequest
0 голосов
/ 21 января 2020

Я работаю над InfluxDb и у меня есть данные временного ряда, которые записывают температуру места. Здесь я должен найти максимальную температуру и отметку времени для каждого дня.

Задача состоит в том, чтобы:

  • Найти среднюю температуру за 1 час.
  • Затем найдите максимальную температуру из вышеуказанного среднего значения для каждого дня.

Я написал запрос, но я не получаю вывод, как требуется.

SELECT MAX(mean)
FROM (SELECT mean("value")
        FROM "temperature"
        WHERE ("location" = 'L1')
        GROUP BY time(1h))
    GROUP BY time(1d)

I ' я получаю вывод как:

time                 max 
----                 ---      
2020-01-17T00:00:00Z 573.44
2020-01-16T00:00:00Z 674.44

Здесь я получаю метку времени как 00: 00: 00z, есть ли способ получить точное время, т.е. если средняя температура составляет 573,44 в 13:00 час 2020-01-17, отметка времени должна быть 2020-01-17T13: 00: 00Z

1 Ответ

0 голосов
/ 23 января 2020

В настоящее время №

GROUP BY эффективно удаляет временные метки для каждой записи. Это похоже на то, что все данные за интервал группировки (например, за день) помещаются в корзину без их временных меток. В ячейке есть одна временная метка - начало интервала.

Результат всегда имеет только временную метку начала интервала GROUP BY.

Единственный способ сделать это - приложение, а не бэкэнд. Вы могли бы хотеть экспериментировать; если вам нужно только разрешение, например, до ближайших 5 минут, выполните запрос, используя GROUP BY time(5m). Это можно сделать, чтобы уменьшить размер данных, извлекаемых клиентом, по сравнению с временем обработки бэкэнда.

...