Расскажи про свой опыт написания запросов

«Расскажи про свой опыт написания запросов» — вопрос из категории SQL, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Имею 5+ лет опыта работы с SQL в различных СУБД (PostgreSQL, MySQL, Oracle). Пишу сложные запросы с JOIN, подзапросами, CTE, оконными функциями. Оптимизировал запросы, сократив время выполнения с 10+ секунд до миллисекунд через индексы и рефакторинг.

Пример сложного запроса с оконной функцией:

WITH user_stats AS (
  SELECT 
    user_id,
    SUM(amount) OVER (PARTITION BY user_id ORDER BY date) AS running_total,
    RANK() OVER (ORDER BY SUM(amount) DESC) AS user_rank
  FROM transactions
  WHERE date BETWEEN '2023-01-01' AND '2023-12-31'
  GROUP BY user_id, amount, date
)
SELECT * FROM user_stats WHERE user_rank <= 10;

Также работал с NoSQL (MongoDB), писал агрегации и map-reduce. Владею навыками анализа execution plan для оптимизации запросов.