Les fonctions InfluxQL partagent un ensemble de règles syntaxiques qui régissent leur combinaison dans les requêtes, la nomenclature des colonnes de sortie et la gestion des intervalles de temps dépourvus de données.
| Rubrique | description |
|---|---|
| Combiner plusieurs fonctions dans une instruction SELECT | Exécutez plusieurs fonctions d'agrégation ou de sélection au sein d'une même requête |
| Renommer les clés de champ de sortie | Utilisez AS pour contrôler les noms des colonnes de sortie |
| Gérer les intervalles de temps vides dans les requêtes GROUP BY time() | Remplacez les valeurs nulles lorsqu'aucune donnée n'est signalée dans une fenêtre temporelle |
Combiner plusieurs fonctions dans une instruction SELECT
Syntaxe
SELECT <function>(), <function>() FROM_clause [...]
Séparez les différentes fonctions par des virgules. Cette syntaxe s'applique à toutes les fonctions InfluxQL, à l'exception de TOP() et BOTTOM(), qui ne peuvent pas être combinées avec d'autres fonctions dans une même instruction SELECT.
Calculer les valeurs moyenne et médiane des champs en une seule requête
> 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
Cette requête renvoie la moyenne et la médiane de la clé de champ water_level.
Calculer le mode de deux clés de champ en une seule requête
> 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
Cette requête renvoie la valeur la plus fréquente pour chaque clé de champ. Le résultat pour water_level apparaît dans la colonne mode ; celui pour level description apparaît dans mode_1. Les noms des colonnes de sortie devant être uniques, le système renomme automatiquement la deuxième colonne mode en mode_1. Pour définir des noms de colonne personnalisés, consultez la section Renommer les clés de champ de sortie.
Calculer les valeurs minimale et maximale des champs en une seule requête
> 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
Cette requête renvoie les plus petites et les plus grandes valeurs de la clé de champ water_level.
Le résultat affiche l'horodatage nul1970-01-01T00:00:00Z.MIN()etMAX()sont des fonctions de sélection. Lorsqu'une instructionSELECTcontient une seule fonction de sélection, un horodatage spécifique est renvoyé. Lorsqu'elle en contient deux, chacune renvoie un horodatage différent et le système remplace les deux par l'horodatage nul. Les horodatages individuels sont les suivants :
> 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
Renommer les clés de champ de sortie
Syntaxe
SELECT <function>() AS <field_key> [...]
Par défaut, les fonctions renvoient les résultats sous une clé de champ correspondant au nom de la fonction. Incluez une clause AS pour spécifier un nom personnalisé pour la clé de champ de sortie.
Renommer une seule clé de champ de sortie
> SELECT MEAN("water_level") AS "dream_name" FROM "h2o_feet"
name: h2o_feet
time dream_name
---- ----------
1970-01-01T00:00:00Z 4.442107025822522
Sans la clause AS, la clé de champ de sortie prend par défaut la valeur mean.
> SELECT MEAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean
---- ----
1970-01-01T00:00:00Z 4.442107025822522
Renommer les clés de champ de sortie pour plusieurs fonctions
> 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
Sans la clause AS, les clés de champ de sortie prennent par défaut les valeurs median et 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
Gérer les intervalles de temps vides dans les requêtes GROUP BY time()
Les requêtes combinant des fonctions InfluxQL avec une clause GROUP BY time() renvoient des valeurs nulles pour les intervalles de temps où aucune donnée n'est rapportée. Pour remplacer les valeurs nulles par une autre valeur de remplissage, ajoutez une clause fill() à la fin de la clause GROUP BY.