Позиция data-инженера востребована в IT-индустрии. Такой специалист занимается обработкой данных, которые чаще всего хранятся в базах данных. Работа с БД, в свою очередь, подразумевает хорошее знание языка запросов SQL.
На собеседованиях в мобильном операторе мы для проверки у кандидата знаний SQL задавали небольшие, но хитрые задачи по запросам, которые будут описаны ниже. Некоторые из них вводили в ступор даже опытных разработчиков баз данных.
Итак, начнём. Представьте, что у вас в базе данных есть две таблицы: TABLE1 и TABLE2. Ниже будут приведены несколько SQL-запросов. Нужно ответить на один простой вопрос: отработает ли данный запрос или упадет с ошибкой? И объяснить, почему.
select * from TABLE1 group by ID
select field1 from TABLE1 group by field1, field2
select field1, field2 from TABLE1 group by field1, field2 having field2 = 0
Примечание: field1, field2 являются числовыми полями.
update TABLE1 set field1 = row_number() from TABLE1
insert into TABLE1 (field1, field2, field3) values ('1','2')
Примечание: field1, field2, field3 являются текстовыми полями.