J'ai une base de données Influx remplie de valeurs. Ces valeurs sont présentées par Grafana. Ce dont j'ai besoin, c'est d'obtenir les valeurs réelles en fonction de l'intervalle de temps sélectionné.Utilisation de la sous-requête InfluxDB pour soustraire des valeurs
Actuellement, j'ai la requête suivante pour une seule mesure:
SELECT mean("value") FROM "table" WHERE $timeFilter GROUP BY time($interval) fill(null)
Ce que je veux est de soustraire la valeur la plus basse de cet intervalle, il ne compte que les valeurs de l'intérieur de cet intervalle. Le graphique doit donc commencer à zéro. Pour obtenir la valeur la plus basse de cet intervalle j'utilise:
SELECT min("value") FROM "table" WHERE $timeFilter
donc je pensais que la combinaison de ces deux (avec une sous-requête) comme celui-ci devrait fonctionner:
SELECT mean("value") - (SELECT min("value") FROM "table" WHERE $timeFilter) FROM "table" WHERE $timeFilter GROUP BY time($interval) fill(null)
Malheureusement, ce travail ne marche pas. La requête n'est pas acceptée en tant que sous-requête.
Quelle version d'Influx utilisez-vous? En principe en 1.2 devrait être possible de faire quelque chose comme ça. – Pigueiras
J'utilise la version shell InfluxDB: 1.2.0. Je sais que les sous-requêtes sont possibles, mais dans la mesure où la documentation ne va que dans la section 'FROM'. La documentation ne donne pas d'exemples d'autres types de sous-requêtes. – Nhz
Vous avez tout à fait raison, il semble que ce ne soit pas possible. Je pensais dans un hack faire du template avec grafana, mais ça ne marche pas parce qu'il montre l'horodatage au lieu du 'min (" count ")'. Je suppose que le mieux que vous pouvez obtenir est de calculer le min et le soustraire la constante de la requête :( – Pigueiras