#Друзья!
Оконные функции – главное, что вам надо знать, чтобы пройти техсобес по SQL* (со знанием дела готоворю 😉) Ну и для работы это must-have, конечно же!
Делятся на 3 группы – по функционалу и, как раз где-то +- по сложности использования / скиллу:
1️⃣ Aggreate: count/sum/min etc – на тройку) (отдельно здесь "нарастающий итог" добавил – простой но не такой уж частый кейс – плюс за него можно себе добавить))
На "тройку" ещё точно добавил бы row_number (это уже ranking - см ниже) из-за частоты его применения и простоты.
2️⃣ Ranking / 3️⃣ Value: dense_rank,.. lag/lead,.. - на 4ку / 4+ – тут от сложности задачи многое зависит)),
Плавающее окно (aka «скользящее» – которое через RANGE/ROWS задаётся) – это уже на твёрдую пятёрку!🤓 (ну, если задание вдруг дадут, и решите его (но, как правило, достаточно знать, что это и когда нужно, так как если вы не на какую-нибудь сложную аналитику идёте, то это довольно редкий кейс, встретивши который на практике, надо просто вспомнить, что это есть, загуглить синтаксис и поотлаживать запрос))
Это не отдельный вид оконных функций, а вид построения самого окна – более редкий, гибкий, но и более сложный для понимания способ построения самого окна (группы строк), когда его границы задаются на основе какого-то правила от текущей строки, а не по группе строк, попадающим в эту группу по значению ключа (комбинации полей), по которому производится разбивка на окна (надеюсь, понятно написал 😅) Отсюда и особенность: такие окна могут накладываться друг на друга в отличие от окно по ключу, которые разбиваются всё множество входных строк на группы... Короче, можно долго пытаться описывать, но лучше найти картинки понагляднее (под рукой нет)), и побольше задач таких порешать. Но, ещё раз скажу – на собесах такое редкость. Разве что на какой-нибудь лайвкодинг в Яндекс на продвинутую аналитику такое могу себе представить или типа того (там была самая сложня задача на SQL из моего опыта)
ну и алиасы окон - чтобы без усилий эрудицией блеснуть 😁
* - подразумевается, конечно, что неоконный SQL "от зубов", иначе совсем плохи дела 😅
https://towardsdatascience.com/anatomy-of-sql-window-functions-7256d8cf509a
(Ну и английский заодно подтянете))
#sql #windowfunctions #todo #лайвкодинг #оконки #livecoding
Оконные функции – главное, что вам надо знать, чтобы пройти техсобес по SQL* (со знанием дела готоворю 😉) Ну и для работы это must-have, конечно же!
Делятся на 3 группы – по функционалу и, как раз где-то +- по сложности использования / скиллу:
1️⃣ Aggreate: count/sum/min etc – на тройку) (отдельно здесь "нарастающий итог" добавил – простой но не такой уж частый кейс – плюс за него можно себе добавить))
На "тройку" ещё точно добавил бы row_number (это уже ranking - см ниже) из-за частоты его применения и простоты.
2️⃣ Ranking / 3️⃣ Value: dense_rank,.. lag/lead,.. - на 4ку / 4+ – тут от сложности задачи многое зависит)),
Плавающее окно (aka «скользящее» – которое через RANGE/ROWS задаётся) – это уже на твёрдую пятёрку!🤓 (ну, если задание вдруг дадут, и решите его (но, как правило, достаточно знать, что это и когда нужно, так как если вы не на какую-нибудь сложную аналитику идёте, то это довольно редкий кейс, встретивши который на практике, надо просто вспомнить, что это есть, загуглить синтаксис и поотлаживать запрос))
Это не отдельный вид оконных функций, а вид построения самого окна – более редкий, гибкий, но и более сложный для понимания способ построения самого окна (группы строк), когда его границы задаются на основе какого-то правила от текущей строки, а не по группе строк, попадающим в эту группу по значению ключа (комбинации полей), по которому производится разбивка на окна (надеюсь, понятно написал 😅) Отсюда и особенность: такие окна могут накладываться друг на друга в отличие от окно по ключу, которые разбиваются всё множество входных строк на группы... Короче, можно долго пытаться описывать, но лучше найти картинки понагляднее (под рукой нет)), и побольше задач таких порешать. Но, ещё раз скажу – на собесах такое редкость. Разве что на какой-нибудь лайвкодинг в Яндекс на продвинутую аналитику такое могу себе представить или типа того (там была самая сложня задача на SQL из моего опыта)
ну и алиасы окон - чтобы без усилий эрудицией блеснуть 😁
* - подразумевается, конечно, что неоконный SQL "от зубов", иначе совсем плохи дела 😅
https://towardsdatascience.com/anatomy-of-sql-window-functions-7256d8cf509a
(Ну и английский заодно подтянете))
#sql #windowfunctions #todo #лайвкодинг #оконки #livecoding
Medium
Anatomy of SQL Window Functions
Back To Basics | SQL fundamentals for beginners
👍4🔥1