← Alle AufgabenSQL · Junior
Zählen und summieren nach Status
Zähle die Bestellungen nach Status: Spalten status, orders (die Anzahl) und revenue (die Summe von total).
Status mit den meisten Bestellungen zuerst, und bei gleicher Anzahl nach Statusname.
Tabellen
CREATE TABLE orders (
id int PRIMARY KEY,
customer_id int NOT NULL,
status text 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, 10, 'paid', 100.00), (2, 11, 'paid', 50.50), (3, 10, 'cancelled', 20.00), (4, 12, 'paid', 10.00), (5, 13, 'pending', 75.00);
-- equal counts: sorted by status INSERT INTO orders VALUES (1, 1, 'shipped', 10.00), (2, 2, 'paid', 20.00), (3, 3, 'shipped', 30.00), (4, 4, 'paid', 40.00);
-- no orders at all SELECT 1;