← Усі задачіSQL · Middle

Друга за величиною зарплата

Поверніть другу за величиною різну зарплату одним рядком з однією колонкою second_salary. Якщо такої немає (усі зарплати однакові чи таблиця порожня), має повернутися один рядок із NULL, а не нуль рядків.

Таблиці

CREATE TABLE employees (
  id     int PRIMARY KEY,
  name   text NOT NULL,
  salary int NOT NULL
);

Тести (4)

Кожен тест заповнює таблиці своїми даними й порівнює результат вашого запиту з очікуваним: ті самі колонки (назви й порядок) і ті самі рядки в тому самому порядку, тож ORDER BY важливий. Запит виконується в справжньому PostgreSQL просто в браузері; перший запуск завантажує його (близько 5 МБ).

  1. INSERT INTO employees VALUES (1, 'Ann', 7000), (2, 'Bob', 9000), (3, 'Cid', 5000);
  2. -- the top salary appears twice
    INSERT INTO employees VALUES (1, 'Ann', 9000), (2, 'Bob', 9000), (3, 'Cid', 6000);
  3. -- only one distinct salary: the answer is NULL
    INSERT INTO employees VALUES (1, 'Ann', 5000), (2, 'Bob', 5000);
  4. -- empty table: still one row with NULL
    SELECT 1;