14 июля 2025

eur = 91.12 -0.38 (-0.41 %)

btc = 122 253.00$ 4 344.75 (3.68 %)

eth = 3 032.28$ 74.89 (2.53 %)

ton = 3.02$ 0.02 (0.61 %)

usd = 77.89 -0.02 (-0.02 %)

eur = 91.12 -0.38 (-0.41 %)

btc = 122 253.00$ 4 344.75 (3.68 %)

Задания по SQL с реальных собеседований. Сможете их решить?

2,4к
3 минуты на чтение
Задания по SQL с реальных собеседований. Сможете их решить?

SQL — один из самых востребованных навыков в IT.

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

Вводные к задачам

Мы будем решать задачи, опираясь на эти таблицы:

Задания по SQL с реальных собеседований. Сможете их решить?

Задача № 1. Для уровня Junior

Задание. Вывести название и цену каждого анализа, которые продавались 5 февраля 2020 года и в течение всей следующей недели.

Примечание. С помощью этой задачи проверяют, знает ли человек SELECT-запросы и есть ли у него навык работы с датой и временем. На собеседовании смотрят на то, правильно решена задача или нет, а специфика диалекта редко имеет значение. Если вам привычнее PostgreSQL, спокойно работайте там.

Задания по SQL с реальных собеседований. Сможете их решить?
Ответ к задаче № 1

Задача № 2. Для уровня Middle

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

Примечание. С помощью этой задачи проверяют, понимает ли человек на базовом уровне оконные функции, джоины и группировки. Когда первая версия запроса будет написана, сделайте его оптимизацию. Так, в этом примере у нас CTE — обобщенные табличные выражения.

Задания по SQL с реальных собеседований. Сможете их решить?
Ответ к задаче № 2

Задача № 3. Для уровня Senior

В этой задаче вы будете работать всего с одной таблицей. Запрос здесь не сложный, но чтобы его написать, нужно уметь «мыслить на SQL».

Вот таблица балансов клиентов:

ClientBalance(client_id, client_name, client_balance_date, client_balance_value)

  • client_id — идентификатор клиента;
  • client_name — ФИО клиента;
  • client_balance_date — дата баланса клиента;
  • client_balance_value — значение баланса клиента.

Задание. Здесь есть полные дубли. Попробуйте от них избавиться, не создавая новую таблицу.

Задания по SQL с реальных собеседований. Сможете их решить?
Ответ к задаче № 3

Вопрос № 1. Для уровня Junior

На собеседованиях любят задавать «хитрые» вопросы, чаще Junior-специалистам, но остальным тоже перепадает. Вот один из таких вопросов.

Вопрос. Как оператор GROUP BY обрабатывает поля с NULL?Ответ. С учетом того, что NULL в SQL — это отсутствие значения, при группировке все значения NULL оказываются в одной группе. Возьмем вот такую таблицу:

Задания по SQL с реальных собеседований. Сможете их решить?

Тогда запрос select sum(score) from table group by name даст:

Задания по SQL с реальных собеседований. Сможете их решить?

Вопрос № 2. Для уровня Middle

Тут все не так хитро, как в вопросе № 1, но здесь требуется знать оконные функции и их тонкости. А это вполне себе требование для Middle.

Вопрос. Чем отличается функция RANK() от DENSE_RANK()?

Примечание. Задачи на основе подобного вопроса часто дают на собеседованиях. Скажем, пронумеровать строки с одинаковыми значениями без разрывов, с разрывами и т. д. Так что есть смысл на досуге потренироваться.

Ответ. Подобно функции ROW_NUMBER, оконные функции RANK и DENSE_RANK служат для нумерации строк. Но с ними все происходит отчасти по-другому: строки с одинаковыми значениями получают одинаковый ранг. При некоторых задачах это вполне оправданно. Когда два сотрудника получают одинаковую зарплату, нельзя разделить их на первого и второго, они одинаковые. Тогда вопрос: какой ранг должен быть у следующего сотрудника? Если у первых ранг 1, то у следующего сотрудника он будет 2 или 3?

Вместо заключения

Здесь только пять вероятных задач, с которыми вы можете столкнуться во время собеседования. Но таких задач сотни, и придется решать их пачками, чтобы разобраться в теории, как следует ее прочувствовать и «начать думать на SQL».

Читать первым в Telegram-канале «Код Дурова»

Важные новости коротко — от GigaChat Max 
1-bg-изображение-0
img-content-1-изображение-0

GigaChat Max: коротко о главном

Как изменился Код Дурова вместе с GigaChat Max?

Узнай о всех возможностях в FAQ-статье 
Google объединит ChromeOS и Android в единую платформу

GigaChat Max: коротко о главном

Google объединит ChromeOS и Android в единую платформу

Полная версия 
Samsung разрабатывает альтернативу Android AutoSamsung разрабатывает альтернативу Android AutoSamsung разрабатывает альтернативу Android Auto

GigaChat Max: коротко о главном

Samsung разрабатывает альтернативу Android Auto

Полная версия 

Реализовано через GigaChat Max 

Сейчас читают
Карьера
Блоги 377
OTP Bank
Газпромбанк
Сбер
Т-Банк
X5 Tech
билайн
МТС
Яндекс Практикум
Ozon Tech
Циан

Пользуясь сайтом, вы соглашаетесь с политикой конфиденциальности
и тем, что мы используем cookie-файлы