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