Umsatzwachstum von Monat zu Monat
Berechne den Monatsumsatz und das Wachstum gegenüber dem Vormonat: Spalten month (der erste Tag des Monats, Typ date), revenue und growth_pct, die prozentuale Änderung, auf eine Nachkommastelle gerundet (NULL für den ersten Monat). Sortiert nach month.
Zum Beispiel ist 200 → 300 gleich 50.0, und 300 → 150 gleich -50.0.
Tabellen
CREATE TABLE orders (
id int PRIMARY KEY,
created_at date NOT NULL,
total numeric(10, 2) NOT NULL
);Strg+Enter führt die Tests aus. Tab rückt ein; um den Editor per Tastatur zu verlassen, drücke Esc und dann Tab. Der Code wird in diesem Browser gespeichert.
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).
INSERT INTO orders VALUES (1, '2024-01-05', 100.00), (2, '2024-01-20', 100.00), (3, '2024-02-11', 300.00), (4, '2024-03-02', 150.00);
-- growth rounded to one decimal place INSERT INTO orders VALUES (1, '2024-04-01', 300.00), (2, '2024-05-15', 400.00), (3, '2024-06-30', 401.00);
-- a single month: growth is NULL INSERT INTO orders VALUES (1, '2024-09-09', 50.00);