2016-12-14 4 views
0

я настроил следующее измерение InfluxDB называется отношением одним fieldKey под названием «имени»InfluxDB подсчитывать одинаковые строковые значения для TimeRange

-------------------------------------------------- 
| time    | name      | 
-------------------------------------------------- 
| 1481274571179850400 | current_assets   | 
-------------------------------------------------- 
| 1481274571179850401 | othervalue    | 
-------------------------------------------------- 
| 1481274571179850402 | othervalue    | 
-------------------------------------------------- 
| 1481274571179850403 | current_assets   | 
-------------------------------------------------- 
| 1481274571179850404 | othervalue    | 
-------------------------------------------------- 

Есть около 20 различных названий. В зависимости от того, что вызывается на бэкэнд, я пишу одну строку с заданным именем (например, current_assets, othervalue, ...) для статистики.

Это хорошо работает, и я получаю таблицу выше.

Теперь я хотел бы создать один запрос (в графана)

  • обращений в TimeRange для одного имени

например

251 «current_assets» записи за последние 24 часа

21 «другое значение» записи последних 6 часов

Я пробовал разные вещи здесь, но я не могу это сделать.

Есть ли у кого-нибудь идеи, как может выглядеть такой запрос?

Большое спасибо

+0

Можете ли вы включить в себя то, что вы в настоящее время пытаетесь? Что-то вроде 'SELECT count (name) FROM ratio WHERE name = 'current_assets' и time> now() - 24h' work? –

+0

Да, я пробовал его с условием «где», и он работает до сих пор. Но мне не нравится создавать отдельный запрос для всех 20 различных условий. – Michi

+0

Если вы не измените схему, вам понадобятся несколько запросов. По сути, вы хотите, чтобы это было 'GROUP BY name ', которое возможно только в том, что' name' является тегом. –

ответ

0

Я рекомендовал бы изменения name к тегу и имеющий поле value, что либо хранит целые или BOOL. Таким образом, вы можете задать вопрос, например

SELECT count(value) FROM ratio WHERE time > now() - 24h GROUP BY name 
Смежные вопросы