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

Mittelwerte über Zeitraum

Dieses Thema im Forum "SQLite" wurde erstellt von jblack, 16 August 2020.

  1. jblack

    jblack Neuer Benutzer

    hi,

    möchte Temperaturwerte mitteln, über einen Zeitraum, auf stunden/minuten basis.
    mit folgenden sql bekomme ich das ganze über einen tag hin, hier im 15min takt:

    SELECT

    round( AVG(TEMP),1) as TEMP,

    strftime ('%H:%M',DATETIME(DATUMZEIT, '+1 minutes')) PERX_MIN

    FROM eTemp where datetime(DATUMZEIT) BETWEEN datetime('2020-04-20 00:00:00') and datetime('2020-04-20 22:00:00')

    group by strftime('%s',DATUMZEIT)/60/15


    möchte das ganze nun auch zb. über einen monat wissen und nicht nur für einen tag.
    d.h. ein wert für einen zeitraum über mehrere tage, zb:

    zeit - avg temp
    06:15 - 22,1
    06:30 - 23,6
    06:45 - 22,2
    .
    .
    .
    .
    (für den monat mai zb)

    tabellenfelder:
    ID INTEGER NULL,
    DATUMZEIT TEXT NULL,
    TEMPSENSOR REAL NULL,

    daten liegen im minutentakt vor , zb.:

    ID | DATUMZEIT | TEMPSENSOR
    1| 2020-03-22 12:07:00| 19.0
    2| 2020-03-22 12:08:00 | 21.0
    3 | 2020-03-22 12:09:00 | 21.0
    4 | 2020-03-22 12:10:00 | 21.5
    5 | 2020-03-22 12:11:00 | 22.5
    6 | 2020-03-22 12:12:00 | 22.5
    7 | 2020-03-22 12:13:00 | 22.5
    8 | 2020-03-22 12:14:00 | 22.5
    9 | 2020-03-22 12:15:00 | 22.5
    10 | 2020-03-22 12:16:00 | 22.5
    11 | 2020-03-22 12:17:00 | 22.5
    12| 2020-03-22 12:18:00 | 22.5
    13 | 2020-03-22 12:19:00 | 22.2
    14 | 2020-03-22 12:20:00 | 22.0

    wie am besten vorgehen ?

    thx
     
  2. dabadepdu

    dabadepdu Datenbank-Guru

    Hab ich ein Deja Vue?
     
  3. jblack

    jblack Neuer Benutzer

    ja, warum nicht.
     
  4. jblack

    jblack Neuer Benutzer

    so habe ich es gelöst:

    SELECT

    round( AVG(TEMPSENSOR),1) as avg_temp,
    strftime('%Y',DATUMZEIT) as jahr,
    strftime ('%H:%M',DATETIME(DATUMZEIT, '+1 minutes')) time

    FROM ETEMP WHERE

    strftime('%Y', DATUMZEIT) = '2020'
    and strftime('%m', DATUMZEIT) = '08'
    and strftime('%d', DATUMZEIT) = '17'
    and time(DATUMZEIT) BETWEEN ('05:45:00') and ('21:59:59')

    GROUP BY jahr, strftime('%s',TIME(DATUMZEIT))/60/15

    ORDER BY time


    ;)
     
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