Примечание: все результаты необходимо получить, используя исключительно язык запросов SQL, избегая при этом ручного поиска нужных значений в таблице (такое допустимо только в случае проверки полученного результата). Поскольку в таблице содержится около 50 записей, нужные данные вполне реально найти вручную, но что вы будете делать, если таблица насчитывает несколько миллионов строк?
Таблица 1 – Варианты заданий (работаем в группах по 2 человека, если список группы более 10 человек)
Варианты: |
Формулировка запросов |
|
|
1 |
- Вывести количество сотрудников в каждом отделе и отсортировать по убыванию |
|
числа сотрудников. |
|
- Найти сотрудника, работающего программистом (job_id = ‘IT_PROG’) и имеющего |
|
самую высокую зарплату среди коллег. |
|
|
2 |
- Найти сотрудника с именем John, имеющего зарплату больше 12000. |
|
- Вывести название отдела с максимальным числом сотрудников. |
|
|
3 |
- Найти средние зарплаты по каждому из отделов (можно ли как-то округлить |
|
полученные значения?). |
|
- Вывести названия должностей и количество сотрудников, соответствующих им. |
|
Отсортировать данные по убыванию числа сотрудников. |
|
|
4 |
- Найти сотрудника, который имеет зарплату равную минимальной зарплате по его |
|
должности. |
|
- Найти сотрудника с минимальной зарплатой среди всех сотрудников. Имя и |
|
фамилию вывести в одной колонке, дать имя колонке «worker». |
|
|
5 |
- Найти первых трёх сотрудников с наименьшей разницей между их зарплатой и |
|
минимальной зарплатой по должности. |
|
- Найти самое популярное имя (first_name). |
|
|
6 |
- Найти сотрудника со второй по счёту минимальной зарплатой. |
|
- Выяснить, сколько фондовых менеджеров (Stock_manager) работают в отделе |
|
перевозок (Shipping). |
|
|
7 |
- Найти количество сотрудников, в должности которых фигурирует слово |
|
«Manager». |
|
- Найти разницу между зарплатой начальников и средней зарплатой их |
|
подчиненных. |
|
|
|
11 |
8 |
|
- Выяснить, сотрудники какой профессии получают зарплату меньше 2500. |
|
|
- Вывести сотрудников и их начальников (в одном столбце расположены |
|
|
сотрудники, во втором – их начальники). |
|
|
|
9 |
|
- Найти профессию, диапазон которой между минимальной и максимальной |
|
|
зарплатой меньше, чем у остальных профессий. |
|
|
- Вывести названия профессий(job_title) и среднюю зарплату (в диапазоне от 2000 до |
|
|
5000) сотрудников этих профессий. |
|
|
|
10 |
|
- Найти сотрудника, фамилия которого состоит более чем из одного слова. |
|
|
- Найти минимальные зарплаты по отделам, но вывести только те, которые больше |
|
|
10000. |
|
|
|
|
«Бонусное» задание (требует смекалки, дополнительных знаний и поиска в |
|
|
Интернет): |
|
|
Необходимо найти количество менеджеров, менеджеров отделов и остальных |
|
|
сотрудников. Должен получиться результат, представленный на рисунке 15. |
Рисунок 15 – Результат «бонусного» запроса
12