InfluxDB Regentage zählen

Drake

Benutzer
Beiträge
7
Hallo zusammen, ich hab schon wieder das nächste Thema für das ich eure Hilfe benötige.
In meiner InfluxDB wird sobald es zu regnen beginnt die Regenmenge der aktuellen Regenrate gespeichert und addiert sollte es am selben Tag mehrmals Regnen.

Jetzt würde ich gerne die Anzahl der Regentage im Monat abfragen.

Man spricht von einem Regentag wenn mindestens 0,1L pro qm gefallen sind. Daher, sollte der Wert an einem Tag über 0,1 sein gilt dieser Tag als Regentag.

In diesem Beispiel werden die Werte von zwei Regentagen angezeigt.

> SELECT value from "sainlogic.0.weather.current.dailyrain" where time>='2021-08-23' and time<'2021-08-26'

name: sainlogic.0.weather.current.dailyrain

time value
---- -----
1629708285661000000 0
1629708445661000000 0.3
1629712285583000000 0.3
1629712445592000000 0.8
1629712605550000000 1
1629723005300000000 1
1629723165302000000 1.3
1629723965285000000 1.3
1629724125277000000 1.5
1629724925258000000 1.5
1629725085263000000 1.8
1629726045252000000 1.8
1629726205255000000 2
1629755964576000000 4.3
1629756124584000000 0
1629773724245000000 0
1629773884228000000 0.3
1629775324182000000 0.3
1629775484212000000 0.5
1629796283761000000 0.5
1629796443767000000 0.8
1629842362757000000 0.8
1629842522756000000 0
 
Werbung:
Vermutlich wie in anderen SQL-Datenbanken: via Aggregation, Gruppierung und HAVING:

Code:
edb=*# select * from regen ;
       datum        | menge
--------------------+-------
 27-AUG-21 00:00:00 |    10
 27-AUG-21 00:00:00 |    12
 28-AUG-21 00:00:00 |     0
 29-AUG-21 00:00:00 |     5
(4 rows)

edb=*# select datum, sum(menge) from regen group by datum having sum(menge) > 1;
       datum        | sum
--------------------+-----
 29-AUG-21 00:00:00 |   5
 27-AUG-21 00:00:00 |  22
(2 rows)

edb=*#
 
Vermutlich wie in anderen SQL-Datenbanken: via Aggregation, Gruppierung und HAVING:

Code:
edb=*# select * from regen ;
       datum        | menge
--------------------+-------
 27-AUG-21 00:00:00 |    10
 27-AUG-21 00:00:00 |    12
 28-AUG-21 00:00:00 |     0
 29-AUG-21 00:00:00 |     5
(4 rows)

edb=*# select datum, sum(menge) from regen group by datum having sum(menge) > 1;
       datum        | sum
--------------------+-----
 29-AUG-21 00:00:00 |   5
 27-AUG-21 00:00:00 |  22
(2 rows)

edb=*#

Ok, anhand deines Beispiels werden nun zwei Tage angezeigt an denen es geregnet hat.
Ich hätte aber gerne das er mir als Ausgabe nicht die beiden Tage liefert sondern die zahl 2 für zwei Regentage. Ist das prinzipiell in einem Query möglich. Ich benötige dies für Grafana
 
Werbung:
Zurück
Oben