Расследования: SQL, которым распутывают дело
Новый режим практики: база улик, показания свидетелей и обвинение, которое нужно доказать запросом. Три дела, бесплатно и без регистрации.
Обычная задача по SQL звучит так: «выберите сотрудников, у которых зарплата выше средней». Правильный ответ есть, смысл — не всегда. Мы сделали режим, где у запроса появляется повод: расследования. Вам дают дело, базу улик и семь вопросов, на которые отвечает не преподаватель, а сама база.
Как это устроено
Каждое дело — небольшая история, в которой показания людей не сходятся с записями машин. Сигнал о пожаре поступил в 02:00, а датчик дыма сработал в 02:14 — кто-то знал о пожаре за четырнадцать минут до того, как он начался. Дальше вы расспрашиваете базу настоящими запросами: журнал проходной, звонки, показания датчиков, смены.
Следствие идёт шагами. У каждого шага свой вопрос, подсказка, если запутались, и разгадка, которая открывается только после верного запроса — вместе с новым поворотом. Между шагами можно задать базе любой свой вопрос: всё, что покажется важным, вешается на доску улик и остаётся там до конца дела.
Обвинение надо доказать
В конце вы называете виновного — и этого мало. Обвинение подтверждается запросом: нужно показать человека так, чтобы это следовало из данных, а не из вашего слова. Назвали верно, а запрос слабый — дело не закроется. Обвинили не того — карточка подозреваемого вычёркивается и остаётся на доске: проверенная версия тоже результат.
Три дела разной сложности
Первое дело — про ночной пожар на складе: отбор строк, сортировка, соединение таблиц и группировка. Второе — про недостачу в интернет-магазине, где итоговая цифра не говорит ни о чём, пока не разложишь её на слагаемые: суммы, условие на посчитанный итог и поиск возврата, у которого нет заказа. Третье — про утечку клиентской базы, и там самый очевидный виновный оказывается невиновным: подзапросы, поиск того, чего нет, и соединение таблицы с самой собой.
Кому подойдёт
Расследования открыты всем и работают без регистрации — это вход в тему, а не награда за аккаунт. Если вы проходите курс SQL, дело появится подсказкой в конце того урока, тему которого оно проверяет: вы только что разобрали соединение таблиц — вот случай, где без него не обойтись. Если аккаунт есть, раскрытые дела остаются за вами и показываются значками в личном кабинете.
Совсем без SQL начинать тоже можно: подсказки объясняют, что писать, а база честно отвечает на любой запрос — ошибиться в ней не страшно.