← Alle AufgabenSQL · Senior

Tagesumsatz und laufende Summe

Liste für jeden Tag mit Verkäufen day, revenue (die Summe des Tages) und running_total (die Summe vom ersten Tag bis einschließlich diesem) auf, sortiert nach Datum. Ein Tag kann mehrere Verkäufe haben.

Tabellen

CREATE TABLE sales (
  id     int PRIMARY KEY,
  day    date NOT NULL,
  amount numeric(10, 2) NOT NULL
);

Tests (3)

Jeder Test füllt die Tabellen mit eigenen Daten und vergleicht das Ergebnis deiner Abfrage mit dem erwarteten: dieselben Spalten (Namen und Reihenfolge) und dieselben Zeilen in derselben Reihenfolge, ORDER BY zählt also. Die Abfrage läuft in echtem PostgreSQL direkt im Browser; der erste Start lädt es herunter (etwa 5 MB).

  1. INSERT INTO sales VALUES
      (1, '2024-03-01', 100.00),
      (2, '2024-03-01', 50.00),
      (3, '2024-03-02', 30.00),
      (4, '2024-03-04', 20.00);
  2. -- rows are not inserted in date order
    INSERT INTO sales VALUES
      (1, '2024-05-03', 5.00),
      (2, '2024-05-01', 10.00),
      (3, '2024-05-02', 1.50),
      (4, '2024-05-01', 2.50);
  3. INSERT INTO sales VALUES (1, '2024-01-01', 99.99);