MySQL Subquery Exercises: найдите имя и зарплату сотрудников, которые получают зарплату, которая выше, чем зарплата всех продавцов
MySQL Subquery: Упражнение-11 с решением
Напишите запрос, чтобы найти имя (имя, фамилия, имя) и зарплату сотрудников, которые получают зарплату, превышающую зарплату всего перевозчика (JOB_ID = 'SH_CLERK'). Отсортируйте результаты по зарплате по убыванию.
Пример таблицы: сотрудники
Код:
SELECT first_name,last_name, job_id, salary
FROM employees
WHERE salary >
ALL (SELECT salary FROM employees WHERE job_id ='SH_CLERK') ORDER BY salary;
Пояснение:
MySQL подзапрос с ALL:
Синтаксис:
операнд сравнения_оператор ALL (подзапрос)
Слово ALL, которое должно следовать за оператором сравнения, означает «вернуть TRUE, если сравнение равно TRUE для ВСЕХ значений в столбце, который возвращает подзапрос». Например:
SELECT s1 FROM t1 WHERE s1 > ALL (SELECT s1 FROM t2);
Предположим, что в таблице t1 есть строка, содержащая (10). Выражение TRUE, если таблица t2 содержит (-5,0, + 5), потому что 10 больше, чем все три значения в t2. Выражение FALSE, если таблица t2 содержит (12,6, NULL, -100), поскольку в таблице t2 имеется единственное значение 12, которое больше 10. Выражение неизвестно (т. Е. NULL), если таблица t2 содержит (0 , NULL, 1).
Наконец, выражение TRUE, если таблица t2 пуста. Итак, следующее выражение TRUE, когда таблица t2 пуста:
SELECT * FROM t1 WHERE 1 > ALL (SELECT s1 FROM t2);
Редактор кода MySQL:
Структура базы данных «hr»:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите запрос, чтобы найти имя (имя, фамилия, имя) и зарплату сотрудников, зарплата которых превышает среднюю зарплату всех отделов.
Далее: Напишите запрос, чтобы найти имя (имя, фамилия) сотрудников, которые не являются руководителями.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования