Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: sql, window function, raw sql

Приходилось ли писать T-SQL-запросы вручную?

Проверяет умение выходить за рамки ORM и оптимизировать через нативный SQL.

Короткий ответ

Да, для сложных отчётов, аналитических запросов и пакетных операций я писал T-SQL вручную, используя CTE, оконные функции и прямой UPDATE/MERGE. Это позволило оптимизировать планы выполнения и снизить нагрузку, а также использовать специфичные для SQL Server возможности.

Длинный ответ

Сценарии:

- Сложные агрегации с ROW_NUMBER() OVER().

- Массовые обновления через MERGE.

 

Пример CTE:

WITH Ranked AS (
  SELECT *, ROW_NUMBER() OVER(PARTITION BY Category ORDER BY Date DESC) rn
  FROM Sales
)
SELECT * FROM Ranked WHERE rn = 1;

 

Преимущества:

- Контроль плана выполнения, хинты (OPTION (RECOMPILE)).

 

Интеграция:

- Через ExecuteSqlRaw, FromSqlRaw в EFCore.

 

Вывод:

Вручную SQL пишется, когда ORM не даёт нужной гибкости или оптимальности.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#sql

#window function

#raw sql

Подпишись на C# Developer в телеграм