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

SQL: "vollständige Matrix" selektieren

Dieses Thema im Forum "SQLite" wurde erstellt von Grall, 14 Januar 2016.

  1. Grall

    Grall Neuer Benutzer

    Hallo zusammen,

    ich habe eine Tabelle mit drei Spalten:

    Minute [nat. Zahl] | Datum | Wert [reelle Zahl]

    Als Eingabedateien für nachfolgende Programme benötige ich das folgende Ausgabeformat:

    Minute;Datum;Wert

    Beispiel:
    0;2014-01-01;564
    0;2014-01-02;12
    1;2014-01-01;0
    1;2014-01-02;84
    2;2014-01-01;21
    2;2014-01-02;48


    Dabei muß allerdings jede Minute genau einmal aufgeführt werden - d.h. auch Minuten, zu welchen keine Meßwerte vorliegen. Dort soll dann Datum mit dem "aktuellen" Datum (d.h. das Datum des aktuellen Blocks) und Wert mit "0" befüllt werden. Bei mehrfachen Meßwerten pro Minute soll das arithmetische Mittel als Wert ausgegeben werden.

    Also im Grunde brauche ich:

    SELECT Minute, Datum, SUM(Wert)/COUNT(*) FROM Tabelle GROUP BY Minute, Datum

    Wobei hier die Minuten ohne Meßwerte fehlen.

    Gibt es eine Möglichkeit, das irgendwie elegant zu lösen? Kann man in der SELECT-Anweisung z.B. irgendwie eine Schleife einbauen? Die Minuten könnte man fix im Bereich (0, 1440) vorgeben. Hauptsache die Matrix ist vollständig.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    mein Ansatz (in PostgreSQL) wäre gegen eine via generate_series() - erzeugte Tabelle zu joinen, die exakt alle nötigen timestamps enthält. Ob das in sqllite geht weiß ich nicht ...
     
  3. ukulele

    ukulele Datenbank-Guru

    Du kannst auch alle Zeitkombinationen in einer Hilfstabelle speichern. Dann machst du einen Full Join zwischen allen Tagen und allen Zeiten und joinst dort per Left Join die vorhanden Datensätze.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    meine Idee mit einfachen Mitteln umgesetzt ;-)
     
  5. ukulele

    ukulele Datenbank-Guru

    SQLite ist ja auch eine einfache Datenbank :)
     
  6. Grall

    Grall Neuer Benutzer

    Ok, danke! Ich werde es mal mit den Hilfstabellen versuchen.
     
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