Мкртич Пудеян
data-аналитик в ГК FINBRIDGE
Позиция data-инженера востребована в IT-индустрии. Такой специалист занимается обработкой данных, которые чаще всего хранятся в базах данных. Работа с БД, в свою очередь, подразумевает хорошее знание языка запросов SQL.На собеседованиях в мобильном операторе мы для проверки у кандидата знаний SQL задавали небольшие, но хитрые задачи по запросам, которые будут описаны ниже. Некоторые из них вводили в ступор даже опытных разработчиков баз данных.
Итак, начнём. Представьте, что у вас в базе данных есть две таблицы: TABLE1 и TABLE2. Ниже будут приведены несколько SQL-запросов. Нужно ответить на один простой вопрос: отработает ли данный запрос или упадет с ошибкой? И объяснить, почему.
Задача 1
select * from TABLE1 group by IDОтвет
Задача 2
select field1 from TABLE1 group by field1, field2Ответ
Задача 3
select field1, field2 from TABLE1 group by field1, field2 having field2 = 0Примечание: field1, field2 являются числовыми полями.
Ответ
Задача 4
update TABLE1 set field1 = row_number() from TABLE1Ответ
Задача 5
insert into TABLE1 (field1, field2, field3) values ('1','2')Примечание: field1, field2, field3 являются текстовыми полями.
Ответ
Задача 6
delete from TABLE1 having count(field1) > 1Ответ
Задача 7
truncate TABLE1Ответ
Задача 8
select * from table1 as t inner join table2 as tt on 1 = tt.field1Ответ
Задача 9
select id,sum(value) over(partition by i order by y), * from table1Примечание: все поля существуют в таблице и соответствуют нужному типу данных.
Ответ
Задача 10
select count(*) from table1 ,table2Ответ
Задача 11
select * from table1 where null = null or null <> null or 123 <> null or null is nullПримечание: представьте, что таблица table1 не пустая. Вернет ли этот запрос строки? Почему?
Ответ
Конечно, существует еще 100500 задач, которые можно придумать и решать на собеседованиях. Но, по моему мнению, важнее всего показать верное направление мышления, чем дать правильный ответ на конкретный вопрос.
Если готовитесь к устройству на работу или хотите просто освежить знания, посмотрите ещё эти 5 заданий по SQL с реальных собеседований.
Источник статьи: https://tproger.ru/articles/11-zadach-po-sql-s-sobesedovanij-na-poziciju-data-engineer/