← Wszystkie zadaniaSQL · Middle
Najwyższa pensja w każdym dziale
Dla każdego działu wypisz pracownika z najwyższą pensją: kolumny department, name, salary, według nazwy działu. Jeśli najwyższą pensję ma kilka osób, weź tę z mniejszym id: jeden wiersz na dział.
Tabele
CREATE TABLE employees (
id int PRIMARY KEY,
name text NOT NULL,
department 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 (3)
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', '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);