Наш вариант теста на знание SQL

У нас, как и во многих других организациях, проводится тестирование соискателей при поступлении их на работу. Основу тестирования составляет устное собеседование, но в некоторых случаях, даются также практические задания. Несколько дней назад, Руководство попросило меня подготовить набор задач на знание SQL.

Разумеется, я постарался сделать задания не слишком сложными. Уровень соискателей различен и задачи, на мой взгляд, должны быть составлены таким образом, чтобы по результатам их решения можно было судить о том, насколько хорошо испытуемый знает предмет.

Также, не имело смысла давать задания на знание каких-либо особенностей тех или иных СУБД. Мы в работе используем Oracle, но это не должно создавать трудностей для соискателей знающих, например, только MS SQL или PostgreSQL. Таким-образом, использование платформо-зависимых решений не возбраняется, но и не является ожидаемым при решении задач.

Для проведения тестирования, в Oracle 11g была развернута схема, содержащая следующие таблицы:

image

Требовалось составить SQL-запросы, для решения следующих пяти заданий:

Задание 1

Вывести список сотрудников, получающих заработную плату большую чем у непосредственного руководителя

Задание 2

Вывести список сотрудников, получающих максимальную заработную плату в своем отделе

Задание 3

Вывести список ID отделов, количество сотрудников в которых не превышает 3 человек

Задание 4

Вывести список сотрудников, не имеющих назначенного руководителя, работающего в том-же отделе

Задание 5

Найти список ID отделов с максимальной суммарной зарплатой сотрудников

Не требовалось искать в каком-либо смысле оптимальное решение. Единственное требование: запрос должен возвращать правильный ответ на любых входных данных. Задания разрешалось решать в любом порядке, без ограничения времени. При правильном решении всех заданий, предлагалось следующее задание повышенной сложности:

Дополнительное задание

Составить SQL-запрос, вычисляющий произведение значений некоего числового столбца таблицы

В обсуждении можно предлагать свои варианты решений. Вечером я опубликую ответы.

Автор: GlukKazan

Источник

Оставить комментарий