← Alle AufgabenSQL · Middle
Höchstes Gehalt in jeder Abteilung
Liste für jede Abteilung den Mitarbeiter mit dem höchsten Gehalt auf: Spalten department, name, salary, sortiert nach Abteilung. Teilen sich mehrere das höchste Gehalt, nimm den mit der kleineren id: eine Zeile pro Abteilung.
Tabellen
CREATE TABLE employees (
id int PRIMARY KEY,
name text NOT NULL,
department text NOT NULL,
salary int 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 employees VALUES (1, 'Ann', 'Engineering', 7000), (2, 'Bob', 'Engineering', 9000), (3, 'Cid', 'Sales', 5000), (4, 'Dee', 'Sales', 6000), (5, 'Eva', 'HR', 4000);
-- a tie: the employee with the smaller id wins INSERT INTO employees VALUES (7, 'Max', 'Sales', 6000), (3, 'Zoe', 'Sales', 6000), (5, 'Lea', 'Sales', 5000);
INSERT INTO employees VALUES (1, 'Solo', 'Legal', 3000);