As funções InfluxQL seguem um conjunto de regras de sintaxe que determinam como combiná-las em consultas, nomear suas colunas de saída e tratar intervalos de tempo sem dados.
|
Tópico |
Descrição |
|
Execute múltiplas funções de agregação ou seleção em uma única consulta |
|
|
Utilize |
|
|
Tratar intervalos de tempo vazios em consultas GROUP BY time() |
Substitua valores nulos quando não houver dados reportados em uma janela de tempo |
Combinar várias funções em uma instrução SELECT
Sintaxe
SELECT <function>(), <function>() FROM_clause [...]
Separe múltiplas funções com vírgulas. Essa sintaxe se aplica a todas as funções InfluxQL, exceto TOP() e BOTTOM(), que não podem ser combinadas com outras funções na mesma instrução SELECT.
Calcular a média e a mediana dos valores de campo em uma única consulta
> SELECT MEAN("water_level"), MEDIAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean median
---- ---- ------
1970-01-01T00:00:00Z 4.442107025822522 4.124
Essa consulta retorna a média e a mediana da chave de campo water_level.
Calcular a moda de duas chaves de campo em uma única consulta
> SELECT MODE("water_level"), MODE("level description") FROM "h2o_feet"
name: h2o_feet
time mode mode_1
---- ---- ------
1970-01-01T00:00:00Z 2.69 between 3 and 6 feet
A consulta acima retorna o valor mais frequente para cada chave de campo. O resultado de water_level aparece na coluna mode; já o resultado de level description aparece em mode_1. Como os nomes das colunas de saída devem ser únicos, o sistema renomeia automaticamente a segunda coluna mode para mode_1. Para defina nomes personalizados de colunas, consulte Renomear chaves de campo de saída.
Calcular os valores mínimo e máximo de campo em uma única consulta
> SELECT MIN("water_level"), MAX("water_level") FROM "h2o_feet"
name: h2o_feet
time min max
---- --- ---
1970-01-01T00:00:00Z -0.61 9.964
Esta consulta retorna o menor e o maior valor da chave de campo water_level.
O resultado exibe o timestamp nulo1970-01-01T00:00:00Z.MIN()eMAX()são funções de seleção. Quando uma instruçãoSELECTcontém apenas uma função de seleção, um timestamp específico é retornado. Se houver duas funções de seleção, cada uma retorna um timestamp diferente, e o sistema substitui ambos pelo timestamp nulo. Os timestamps individuais são:
> SELECT MIN("water_level") FROM "h2o_feet"
name: h2o_feet
time min
---- ---
2015-08-29T14:30:00Z -0.61
> SELECT MAX("water_level") FROM "h2o_feet"
name: h2o_feet
time max
---- -----
2015-08-29T07:24:00Z 9.964
Renomear chaves de campo de saída
Sintaxe
SELECT <function>() AS <field_key> [...]
Por padrão, as funções retornam resultados sob uma chave de campo correspondente ao nome da função. Inclua uma cláusula AS para especifique um nome personalizado para a chave de campo de saída.
Renomear uma única chave de campo de saída
> SELECT MEAN("water_level") AS "dream_name" FROM "h2o_feet"
name: h2o_feet
time dream_name
---- ----------
1970-01-01T00:00:00Z 4.442107025822522
Sem o uso de AS, a chave de campo de saída assume o valor padrão mean.
> SELECT MEAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean
---- ----
1970-01-01T00:00:00Z 4.442107025822522
Renomear chaves de campo de saída para múltiplas funções
> SELECT MEDIAN("water_level") AS "med_wat", MODE("water_level") AS "mode_wat" FROM "h2o_feet"
name: h2o_feet
time med_wat mode_wat
---- ------- --------
1970-01-01T00:00:00Z 4.124 2.69
Na ausência de AS, as chaves de campo de saída assumem os valores padrão median e mode.
> SELECT MEDIAN("water_level"), MODE("water_level") FROM "h2o_feet"
name: h2o_feet
time median mode
---- ------ ----
1970-01-01T00:00:00Z 4.124 2.69
Tratar intervalos de tempo vazios em consultas GROUP BY time()
Consultas que combinam funções InfluxQL com uma cláusula GROUP BY time() retornam valores nulos para intervalos de tempo sem dados reportados. Para substituir esses valores nulos por outro valor de preenchimento, adicione uma cláusula fill() ao final da cláusula GROUP BY.