Las funciones de InfluxQL comparten un conjunto de reglas sintácticas que controlan cómo se combinan en las consultas, cómo se asignan nombres a sus columnas de salida y cómo se gestionan los intervalos de tiempo sin datos.
|
Tema |
Descripción |
|
Ejecutar varias funciones de agregación o de selección en una sola consulta |
|
|
Usar |
|
|
Gestionar intervalos de tiempo vacíos en consultas GROUP BY time() |
Reemplazar valores nulos cuando no se reportan datos en una ventana de tiempo |
Combinar varias funciones en una instrucción SELECT
Sintaxis
SELECT <function>(), <function>() FROM_clause [...]
Separe las funciones múltiples con comas. Esta sintaxis aplica a todas las funciones de InfluxQL, excepto a TOP() y BOTTOM(), las cuales no pueden combinarse con otras funciones en la misma instrucción SELECT.
Calcular la media y la mediana de los valores de campo en una sola 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
Esta consulta devuelve el promedio y la mediana de la clave de campo water_level.
Calcular la moda de dos claves de campo en una sola 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
Esta consulta devuelve el valor más frecuente para cada clave de campo. El resultado de water_level aparece en la columna mode; el resultado de level description aparece en mode_1. Los nombres de las columnas de salida deben ser únicos, por lo que el sistema renombra automáticamente la segunda columna mode como mode_1. Para establecer nombres de columna personalizados, consulte Renombrar claves de campo de salida.
Calcular los valores mínimo y máximo de campo en una sola 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 devuelve los valores menor y mayor de la clave de campo water_level.
El resultado muestra la marca de tiempo nula1970-01-01T00:00:00Z.MIN()yMAX()son funciones de selección. Cuando una instrucciónSELECTcontiene una sola función de selección, se devuelve una marca de tiempo específica. Cuando contiene dos funciones de selección, cada una devuelve una marca de tiempo diferente y el sistema sobrescribe ambas con la marca de tiempo nula. Las marcas de tiempo individuales son:
> 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
Renombrar claves de campo de salida
Sintaxis
SELECT <function>() AS <field_key> [...]
De forma predeterminada, las funciones devuelven resultados bajo una clave de campo que coincide con el nombre de la función. Incluya una cláusula AS para especificar un nombre personalizado para la clave de campo de salida.
Renombrar una sola clave de campo de salida
> SELECT MEAN("water_level") AS "dream_name" FROM "h2o_feet"
name: h2o_feet
time dream_name
---- ----------
1970-01-01T00:00:00Z 4.442107025822522
Sin AS, la clave de campo de salida toma mean como valor predeterminado.
> SELECT MEAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean
---- ----
1970-01-01T00:00:00Z 4.442107025822522
Renombrar claves de campo de salida para varias funciones
> 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
Sin AS, las claves de campo de salida toman median y mode como valores predeterminados.
> 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
Gestionar intervalos de tiempo vacíos en consultas GROUP BY time()
Las consultas que combinan funciones de InfluxQL con una cláusula GROUP BY time() devuelven valores nulos para los intervalos de tiempo en los que no se reportan datos. Para reemplazar los valores nulos con un valor de relleno diferente, agregue una cláusula fill() al final de la cláusula GROUP BY.