← Wszystkie zadaniaSQL · Middle
Druga najwyższa pensja
Zwróć drugą najwyższą różną pensję jako jeden wiersz z jedną kolumną second_salary. Jeśli takiej nie ma (wszystkie pensje są równe lub tabela jest pusta), wynikiem musi być jeden wiersz z NULL, a nie zero wierszy.
Tabele
CREATE TABLE employees (
id int PRIMARY KEY,
name text NOT NULL,
salary int NOT NULL
);Ctrl+Enter uruchamia testy. Tab robi wcięcie; aby wyjść z edytora klawiaturą, naciśnij Esc, a potem Tab. Kod zapisuje się w tej przeglądarce.
Testy (4)
Każdy test wypełnia tabele własnymi danymi i porównuje wynik twojego zapytania z oczekiwanym: te same kolumny (nazwy i kolejność) i te same wiersze w tej samej kolejności, więc ORDER BY ma znaczenie. Zapytanie działa w prawdziwym PostgreSQL prosto w przeglądarce; pierwsze uruchomienie go pobiera (około 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;