← Alle AufgabenSQL · Middle
Zweithöchstes Gehalt
Liefere das zweithöchste unterschiedliche Gehalt als eine Zeile mit einer Spalte second_salary. Gibt es keines (alle Gehälter sind gleich oder die Tabelle ist leer), muss das Ergebnis eine Zeile mit NULL sein, nicht null Zeilen.
Tabellen
CREATE TABLE employees (
id int PRIMARY KEY,
name 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 (4)
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', 7000), (2, 'Bob', 9000), (3, 'Cid', 5000);
-- the top salary appears twice INSERT INTO employees VALUES (1, 'Ann', 9000), (2, 'Bob', 9000), (3, 'Cid', 6000);
-- only one distinct salary: the answer is NULL INSERT INTO employees VALUES (1, 'Ann', 5000), (2, 'Bob', 5000);
-- empty table: still one row with NULL SELECT 1;