TGViewer
Симулейтив Симулейтив @simulative_official · 7.47K subscribers
Post #3539 865
💻 Ошибка в SQL: избыточные подзапросы

Проверяя работы студентов на нашем курсе «Аналитик данных», мы часто встречаемся с ошибкой избыточных подзапросов. То, что можно было решить в один запрос, студенты решают за 3. 

Почему так происходит?

Из-за того, что многие пишут SQL-запросы так же, как это «звучит» в их голове. А SQL работает немного иначе — на нём нужно буквально «мыслить». Но это приходит с опытом, за счёт большого количества практики (как правило, к концу модуля по SQL такие ошибки уже никто не делает). 

Пример

Он будет довольно простым — наверняка вы бы написали здесь сразу один запрос. Однако эта ошибка проявляется даже в таких случаях, чего уж говорить про более сложные. 

Итак, задача: вывести id транзакции и предыдущую сумму транзакции со знаком минус. Вот решение студента:

SELECT id, 
       LAG(neg) OVER(ORDER BY id) 
       AS lg
FROM (
      SELECT id, sm, -sm AS neg
      FROM (
            SELECT id, sum AS sm 
            FROM transactions t
  ) t
) t1


И это ещё не всё, можно и побольше накрутить. Но зачем так, если можно так:

SELECT id, LAG(-sum) OVER(ORDER BY id) 
FROM transactions t


А как писать такие запросы? 

Отсекайте лишнее. Напишите запрос так, как получилось. Затем попробуйте упростить. Затем ещё. И так до тех пор, пока не получите минимально возможный запрос.

Совет

Не старайтесь сразу писать сложные и оптимизированные конструкции. Напишите сначала, как сможете, а затем пытайтесь упростить запрос. Как говорил знаменитый дядюшка Кнут: «Преждевременная оптимизация — корень всех зол».

Ставьте 🔥, если полезно, и сохраняйте, чтобы не потерять!

📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS
  • 🔥 12
  • 👍 1
More from @simulative_official
  1. Sep 24, 2026💻💻💻💻💻 Собираем ETL-пайплайн на данных GitHub Как данные проходят путь от внешнего сер…
  2. Sep 24, 2026Post #3582
  3. Sep 23, 2026Что происходит между вопросом бизнеса и готовым дашбордом? Сегодня в 19:00 покажем этот пу…
  4. Sep 21, 2026💻💻💻💻💻Как устроена работа аналитика в среднем бизнесе? Хотите понять, чего ждать, если…
  5. Sep 21, 2026#проанализировали_и_поняли
  6. Sep 18, 2026💻💻💻💻💻Что меняется в работе дата-инженера, когда данных становится в тысячу раз больше…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →