Senior
Հարց 9. Գրեք հարցում, որը վերադարձնում է աշխատակիցներին, ովքեր իրենց պաշտոնում առավելագույն աշխատավարձ են ստանում: onecompiler.com/postgresql կայքէջին անցեք Սկզբնական սցենարը՝ CREATE TABLE users ( fio TEXT NOT NULL, position TEXT, salary BIGINT NOT NULL ); Տվյալներ մուտքագրեք աղյուսակ: INSERT INTO users(fio, position, salary) VALUES ('Иванов', 'Тестировщик', 100000), ('Горохов', 'Тестировщик', 120000), ('Петров', 'Тестировщик', 140000), ('Сидоров', 'Тестировщик', 100000), ('Кузнецов', 'Тестировщик', 120000), ('Михайлов', 'Тестировщик', 150000), ('Антонов', 'Разработчик', 200000), ('Сухой', 'Разработчик', 100000), ('Микоян', 'Разработчик', 100000), ('Капустин', 'Директор', 300000), ('Астахов', 'ИБ', 200000); Օրինակ արդյունք: Михайлов Тестировщик 150000 Антонов Разработчик 200000 Капустин Директор 300000 Астахов ИБ 200000 Աշխատանքի ժամանակը՝ 10 րոպե։ Գրել հարցումը դաշտում:
sobes.tech AI
Պատասխան AI-ից
Для получения сотрудников с максимальной зарплатой в каждой должности можно использовать оконную функцию RANK() или подзапрос с агрегатной функцией MAX().
Пример с подзапросом:
SELECT fio, position, salary
FROM users u
WHERE salary = (
SELECT MAX(salary)
FROM users
WHERE position = u.position
);
Этот запрос для каждой строки таблицы users сравнивает зарплату с максимальной зарплатой по той же должности и возвращает только тех сотрудников, у которых зарплата максимальна в своей должности.