TGViewer
Я твой продукт анализировал Я твой продукт анализировал @datadeepdive · 1.68K subscribers
Post #181 1.71K
📌 Оконки LEAD и LAG

Любое уважающее себя (но это не точно) техническое интервью обязательно содержит вопрос или задачку про эти функции. Понятия не имею откуда это пошло — не то чтобы это были какие-то сверхпопулярные оконки, скорее даже редкие, но имеем что имеем.

Если ты, по каким-то загадочным причинам, слышишь об этом в первый раз, то гоу разбираться.

Смысл этих функций в притягивании соседа ДО или соседа ПОСЛЕ.

В общем виде выглядит как и любая другая оконка:

lag(some_col) over(partition by some_id order by some_dt)


Т.е. “внутри каждого потока some_id отсортируй строки по some_dt и достань мне предыдущее значение столбца some_col”.

Как и любую другую оконку можно засунуть эту конструкцию прямиком в select, в условие case или where, а при особом желании даже в join можно затянуть.

А что по примерам использования, когда полезно?

🟡При анализе пользовательских путей, если нужно достать название страницы / экрана, который предшествовал заданному. Например для поиска ключевых точек типа откуда юзеры чаще всего попадают на страницу товара;

🟡При осмотре каких-то метрик на текущий момент, чтобы быстро сравнить с предыдущим периодом и показать разницу, растёт или падает. Такое чаще практикуется в репортах, когда нужна одна конкретная цифра “на сейчас” и стрелка вверх-вниз;

🟡При анализе оттока, чтобы быстро посчитать разницу в количестве дней от текущей даты и последней датой активности юзера. Хотя тут и есть более ходовой вариант через max(date), тем не менее юзабельно;

🟡При построении всяких недельных саммари, когда нужно учитывать, например, только рабочие дни.

#собесы
  • 👍 19
  • 🎉 1
More from @datadeepdive
  1. Jul 28, 2026📌 4/4, Бизнес уровень. Пожалуй самый сложный, и самый простой уровень одновременно. Понят…
  2. Jul 28, 2026Сори, отвлёкся 😀 📌 3/4, Продуктовый уровень. Этот раздел ставит перед собой почти филосо…
  3. May 31, 2026📌 2/4, Операционный уровень. Эта часть про то, насколько оптимально расходуются ресурсы.…
  4. May 31, 2026📌 Про оценку направления экспериментов, 1/4 Я как-то недавно выступал на одной конфе, рас…
  5. May 26, 2026А вот маленький демо датасет, если захочется глянуть как оно всё работает
  6. May 26, 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 →