Опыт написания SQL запросов
Что проверяют
Не терминологию, а глубину: пишете ли вы запросы сами или читаете чужие. Проверяется рассказом про конкретные задачи, а следом почти всегда даётся задача на соединение и агрегацию.
Как отвечать
Отвечайте не списком ключевых слов, а через задачи. Рамка: где писали, на какой базе, какого объёма данные, что именно доставали.
> «SQL использую каждый день для проверки данных: сверяю, что записалось после операции, ищу расхождения между интерфейсом и базой, готовлю тестовые данные. > > PostgreSQL, соединения, группировки, оконные функции для проверки порядка и дублей. Из последнего: нашла дефект, когда счётчик в интерфейсе не сходился с фактом, запросом показала, что часть строк пишется дважды при повторной отправке формы».
Что стоит назвать, если действительно делали: типы соединений и поведение LEFT против INNER на строках без пары, агрегацию с GROUP BY и HAVING, оконные функции (ROW_NUMBER, LAG, SUM OVER), подзапросы и CTE, чтение плана через EXPLAIN ANALYZE.
Где спотыкаются
Говорят «уверенный уровень» и не могут вспомнить ни одного своего запроса.
Путают WHERE и HAVING. Первое фильтрует строки до группировки, второе группы после неё.
Не знают, что COUNT(*) и COUNT(колонка) считают разное: второй пропускает NULL.
Никогда не открывали план запроса, а на вопрос «как ускорить» отвечают «добавить индекс», не уточняя какой и почему именно он поможет.