TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #324 3.93K
rows between

Когда я в декабре решала Advent of SQL, на 11 день было интересное задание - найти скользящее среднее по текущей строке с двумя предыдущими. Еще похожая штука применяется, когда нужно найти кумулятивную сумму

🚃 Выход - оконка! (но только в целях SQL)

Мы можем написать так:

avg(amount) over(order by column)


Но под капотом это так:

avg(amount) over(order by column rows between unbounded preceding and current row)


т.е. мы стартуем с первой строки и берем все до текущей

Всего есть несколько способов тюнинга:

--от первой до текущей
rows between unbounded preceding and current row

--от текущей до последней
rows between current row and unbounded following

--с конкретикой - сколько до и сколько после
--от предыдущей до текущей (2 строки)
rows between 1 preceding and current row

--от текущей до 1 следующей (2 строки)
rows between current row and 1 following

--от предыдущей до следующей (3 строки, еще текущая есть)
rows between 1 preceding and 1 following


В контексте задачи со скользящим средним просто нужно взять не 1, а 2 строки:

avg(amount) over(order by rows between 2 preceding and current row)


А для кумулятивной суммы нужно просто сделать так, потому что по дефолту она и будет кумулятивной✨

sum(amount) over(order by column)
  • 👍 45
More from @data_engineerette
  1. Sep 25, 2026Как прошла SmartData 2026? Я вот перечитываю свои впечатления от прошлого года и понимаю,…
  2. Sep 24, 2026Исследование data-people Тут ребята из DevCrowd запустили ежегодное исследование специалис…
  3. Sep 22, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  4. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  5. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
  6. Sep 2, 2026Iceberg — это внезапный бум или планомерная подготовка? Заметили, как с определенного моме…
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 →