Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Abfrage - Vorherige Werte addieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL Abfrage - Vorherige Werte addieren

    Hallo zusammen,

    ich bräuchte einmal Eure Hilfe bei einer SQL Abfrage. Zunächst einmal einen Auszug aus der Tabelle:
    id plattform datum amount
    1 plattform1 2022-04-02 10
    2 plattform1 2022-05-20 50
    3 plattform2 2022-07-10 40
    4 plattform1 2023-01-20 -5
    5 plattform2 2022-10-10 10
    Die Spalte "amount" gibt an um wieviel sich der Wert zum gegeben Datum verändert.
    Ich benötige eine SQL Abfrage, die nach plattform und datum gruppiert und Achtung, dass ist der Teil wo ich nicht weiterkomme, den amount Wert immer zum vorherigen aufsummiert.
    Weiß einer wie ich die Abfrage hinbekomme.

    So sollte das Ergebnis der SQLAbfrage dann aussehen.
    id plattform datum amount
    1 plattform1 202213 10
    2 plattform1 202220 60
    3 plattform1 202303 55
    4 plattform2 202227 40
    5 plattform2 202241 50
    Als Startpunkt können wir diese SQL Abfrage nutzen:
    Code:
    SELECT
    `plattform`,
    YEARWEEK(`datum`) as cw,
    SUM(`amount`)
    FROM tabelle1
    GROUP BY plattform,cw

    Gruß
    Dominik

  • #2
    easy...

    Code:
    postgres=# create table dolphon(id int generated always as identity primary key, plattform text, datum date, amount int);
    CREATE TABLE
    postgres=# insert into dolphon (plattform, datum, amount) values ('plattform1','2022-04-02',10);
    INSERT 0 1
    postgres=# insert into dolphon (plattform, datum, amount) values ('plattform1','2022-05-20',50);
    INSERT 0 1
    postgres=# insert into dolphon (plattform, datum, amount) values ('plattform2','2022-07-10',40);
    INSERT 0 1
    postgres=# insert into dolphon (plattform, datum, amount) values ('plattform1','2023-01-20',-5);
    INSERT 0 1
    postgres=# insert into dolphon (plattform, datum, amount) values ('plattform2','2023-10-10',10);
    INSERT 0 1
    postgres=# select id, plattform, datum, sum(amount) over (partition by plattform order by datum) from dolphon;
     id | plattform  |   datum    | sum 
    ----+------------+------------+-----
      1 | plattform1 | 2022-04-02 |  10
      2 | plattform1 | 2022-05-20 |  60
      4 | plattform1 | 2023-01-20 |  55
      3 | plattform2 | 2022-07-10 |  40
      5 | plattform2 | 2023-10-10 |  50
    (5 rows)
    
    postgres=#
    Prost!
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Vielen Dank für den exzellenten Support.
      Es ist schon lange her, wo ich mich mit PHP und SQL beschäftigt habe. Hat man daran gemerkt, dass dein SQL Statement mit "OVER" nicht funktioniert hat. Erst als ich die MYSQL Instanz aktualisiert habe, hat es funktioniert.

      Kommentar


      • #4
        Zitat von Dolphon Beitrag anzeigen
        Hat man daran gemerkt, dass dein SQL Statement mit "OVER" nicht funktioniert hat. Erst als ich die MYSQL Instanz aktualisiert habe, hat es funktioniert.
        Du musst immer bedenken, dass akretschmer ausschließlich PostgreSQL Beispiele liefert, die können u.U. nur modifiziert auf MySQL/MariaDB angewendet werden. Aber hier hat ja schon mal ein Update geholfen.

        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar

        Lädt...
        X