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

Найбільша зарплата в кожному відділі

Для кожного відділу виведіть співробітника з найбільшою зарплатою: колонки department, name, salary, за назвою відділу. Якщо найбільшу зарплату мають кілька людей, беріть того, у кого менший id - по одному рядку на відділ.

Таблиці

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

Тести (3)

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

  1. INSERT INTO employees VALUES
      (1, 'Ann', 'Engineering', 7000),
      (2, 'Bob', 'Engineering', 9000),
      (3, 'Cid', 'Sales', 5000),
      (4, 'Dee', 'Sales', 6000),
      (5, 'Eva', 'HR', 4000);
  2. -- 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);
  3. INSERT INTO employees VALUES (1, 'Solo', 'Legal', 3000);