2017-02-20 29 views
0

Учитывая, что «место» является строкой поле в influxdb ведро называется places, что есть данные, напоминающую следующее:Как использовать TOP() в строковых полях в infuxdb?

time    | location 
--------------------+---------- 
1477568542209000000 | London 
1477568542409000000 | Essex 
1477568542569000000 | London 
1477568542589000000 | Sussex 
1477568542600000000 | Sussex 
1477568542940000000 | London 

Как я могу объединить тех, чтобы они отсортированы по наиболее распространенным - наименьшее общее, со счетчиком для каждого? Я бы ожидать, чтобы возвратить что-то вроде:

location | count 
---------+------- 
London | 3 
Sussex | 2 
Essex | 1 

Моя первая мысль была использовать SELECT TOP(location, 10) FROM places, но это не работает со строками на полях. Есть ли альтернативный подход, который мне не хватает?

ответ

0

К сожалению, я не могу придумать хороший способ достичь такого результата без изменения вашей схемы. И даже тогда, ответ не особенно велик

Если вы изменили вашу схему, чтобы быть чем-то вроде

places,location=London x=1i <timestamp> 

, то вы можете выполнить следующие запросы

SELECT count(x) INTO places_count FROM places GROUP BY location 
SELECT top("count",10), location FROM places_count 

В качестве альтернативы, вы можете сохранить схему, которую вы имеете, и ввести Kapacitor в микс.

 Смежные вопросы

  • Нет связанных вопросов^_^