Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

InfluxDB Regentage zählen

Dieses Thema im Forum "Andere Datenbankserver" wurde erstellt von Drake, 29 August 2021.

  1. Drake

    Drake Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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=*#
    
    
     
  3. Drake

    Drake Benutzer

    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
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ja, verwende diese Query als Subquery und zähle die Anzahl rows:

    Code:
    edb=*# with foo as (select datum, sum(menge) from regen group by datum having sum(menge) > 1) select count(1) from foo;
     count
    -------
         2
    (1 row)
    
    edb=*#
    
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden