Aller au contenu
Bloug

Aide Fonction sql /Grafana

Recommended Posts

Bonjour,

 

Possible d'avoir de l'aide concernant ma requête sous grafana ? 

 

Capture.JPG.e47eba43c1aba15dc5eef43eeb844845.JPG

 

je souhaite grouper les couts de l'eau, elec et gaz par mois.

 

Le problème est pour le gaz , j'ai modifié mon capteur avec le Gazpar et du coup il considère le "mois" ... à mi chemin :D

 

SELECT
  date AS "time",
  (mon blabla de calculs) AS Gaz
FROM domocharts_water_day
WHERE
  device_id = 540
 GROUP BY MONTH(date) DESC
LIMIT 2

je n'utilise pas la table "domocharts_water_month"  car sinon je bloque également du coté de l'électricité  mais peut être que la conversion est plus " pratique " ? 

 

 

Capture2.JPG.8f7dcebaba331b990745a2a3e98f8bcb.JPG

 

FROM domocharts_energy_day
WHERE
  device_id = 507
 GROUP BY MONTH(date) desc
 limit 2

 

 

Merci !

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne comprends pas bien ta problématique.

Déjà je ne vois pas en quoi cette histoire de mi-chemin pour le compteur de gaz est problématique ? A partir du moment où tu fais un SELECT ... SUM(...) AS Gaz ... GROUP BY MONTH(date) il va faire la somme de tous les jours du mois, peu importe que ça commence en cours de mois ou non.

 

Ensuite comment tu agrège les requêtes sur la même graph ? Tu fais une UNION ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ma problématique est que j'ai exactement la même requête avec seulement un changement du "Device ID"

et pourtant le graph du gaz est coupé. et j'utilise bien le SUM(...)

 

Ma seule indication est de ne pas avoir de "Stats" sur le début du mois pour le gaz. d'où ma question ici :s

Capture3.thumb.JPG.347dd12813f212cfa330faecef4aea4b.JPG

 

 

non pas d'UNION. Les requêtes son simplement à la suite.

Dans les : SELECT date AS "time"  la colonne date sont de format identique sur les deux tables

 

Modifié par Bloug

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que tu devrais essayer avec une UNION.

C'est à dire, dans Grafana, une seule grosse requête, celle-ci étant composée de plusieurs requêtes regroupées entre elles avec une (ou plusieurs) UNION.

Partager ce message


Lien à poster
Partager sur d’autres sites

ok je vais regarder cette piste

 

merci !

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Autre piste, dans ton GROUP BY, je rajouterai également l'année en plus : , YEAR(date)

Partager ce message


Lien à poster
Partager sur d’autres sites

bon j'ai trouvé une solution simple, j'ai simplement ajouté une valeur de 0 dans la table le avec la date du 1er jour du mois .... mais c'est quand même bizzzare

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai compris !

Malgré ton GROUP BY MONTH..., tu avais conservé un SELECT date, ce qui n'est pas bon.

Il faut que ton SELECT soit aligné sur ton GROUP BY.
Donc un truc comme SELECT MONTH(date) AS "Mois" devrait le faire.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon j'ai pas supprimé la valeur de 0 à la date du 1er septembre mais en modifiant avec ta methode j'arrive au même résultat , coïncidence ?

 

SELECT
  MONTH(date) AS 'time',
SUM(sum_value*monblabla) AS Eau
FROM domocharts_water_day
WHERE
  device_id = 540
 GROUP BY MONTH(date) DESC
LIMIT 2

Un grand merci pour l'explication ! :60:

Modifié par Bloug

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait Grafana a besoin d'un index commun pour faire "matcher" les données.
Mais comme ton SELECT n'était pas aligné sur le GROUP BY, tu te retrouvais avec une valeur aléatoire de date (basée sur les algo internes de la requête SQL, qu'on ne maitrise pas).

 

PS : n'oublie pas d'ajouter le GROUP BY YEAR... que je t'ai conseillé précédemment sinon tu auras des valeurs aberrantes l'année prochaine.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×