#10. Оконные функции в SQL (Агрегатные оконные функции)

В сегодняшнем уроке начинаем рассмотрение интересной и полезной темы в SQL - оконные функции.
Тайм-коды в видео:
00:00 Начало
00:07 Определение оконных функций и их отличие от обычных агрегационных
00:54 Пример оконной агрегационной функции (расчет максимальной зарплаты в отделах)
01:45 Основные составляющие оконной функции
03:14 Сортировка в оконной функции
04:16 Пример оконной агрегационной функции (расчет доли зарплаты сотрудников от суммы всех зарплат департамента)
05:54 Заключение
Команды SQL, упоминаемые в видео, доступны по ссылке: pastebin.com/S7w2YEFF
Предложить новую тему для видео: vdsr7ufo2in.typeform.com/to/H...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Также напоминаю. В рамках данного курса действует группа в Телеграм, в которой я в режиме онлайн отвечаю на все вопросы участников, помогаю по ходу обучения.
Вход в группу свободный, по ссылке приглашению (указана ниже). Ограничений по количеству участников на данный момент нет.
В указанной группе задавайте абсолютно любые вопросы, в рамках нашего обучения. Посмотрели видео, попробовали повторить. Получилось - отлично. Что-то не вышло, пишите вопрос в группу. Всем отвечу и помогу.
Ссылка на группу в Telegram: t.me/joinchat/LlHDMBmN0SAxM5_...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
★ Дорогие друзья! Если вам нравится, что я делаю, и вы хотите поддержать проект материально, ссылка: www.donationalerts.com/r/exce...
★ Давайте дружить:
Facebook | / excelstore.pro
Вконтакте | ExcelStore
Telegramm | t.me/ExcelStore
#ОбучениеSQL #КурсыSQL #УрокиSQL #КухарьМаксим #ExcelStore

Пікірлер: 91

  • @ExcelStore
    @ExcelStore3 жыл бұрын

    Если будут какие-либо вопросы по обучению SQL: 1. Под видео ссылка на нашу группу в Телеграм, где вы всегда можете задать интересующие вас вопросы. 2. Ссылка на Базовый курс SQL: kzread.info/head/PLKl9v2TQvIkq4i_hZwZ1PmobxJSkIGwBf

  • @user-nj2uo2wm2c
    @user-nj2uo2wm2c2 жыл бұрын

    Не знаю, насколько понятно для новичков, но для тех, кому нужно просто освежить в памяти материал - такой формат заходит отлично! Кратко, по делу, без "воды" на час и т.п. Спасибо!

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо за отзыв! На днях опубликую еще одно видео из серии оконных функций.

  • @user-xx9cf5cd3b
    @user-xx9cf5cd3b Жыл бұрын

    Мне это видео помогло понять работу оконных функций лучше чем статья на хабре, спасибо за разбор понятных примеров!

  • @shelton6100
    @shelton6100Ай бұрын

    Офигенно структурированный материл!

  • @olegkonyushevsky6216
    @olegkonyushevsky6216Ай бұрын

    Спасибо огромное!❤ мне и в голову не приходило, что результат оконной функции можно использовать как значение для расчета. Это видео открыло мне глаза. И то, что скобки можно оставлять пустыми для агрегации по всей таблице. Спасибо. Жить стало приятнее.

  • @user-fz7oc5kr3n
    @user-fz7oc5kr3n3 жыл бұрын

    Наконец-то понял для себя, как работать с оконными функциями

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Спасибо. Рад, что видео оказалось полезным.

  • @user-lh6xe3zi1t
    @user-lh6xe3zi1t7 ай бұрын

    Очень полезное видео. Спасибо! 👍👍👍 И за тайм-коды на видео отдельная благодарность!

  • @MissKilley
    @MissKilley2 жыл бұрын

    Максим, спасибо огромное, все суперпонятно, хорошие примеры, без воды, отличная работа!! 👍

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо за отзыв!

  • @-excelpowerpointword6260
    @-excelpowerpointword6260 Жыл бұрын

    Спасибо, что делитесь своими знаниями.

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Татьяна, спасибо за отзыв!

  • @user-yc3qj7ky9c
    @user-yc3qj7ky9c3 жыл бұрын

    Давно ждал видео про оконные функции. Спасибо.

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Спасибо. Это только первое видео из серии оконных функций. В ближайшие 2-3 недели будут еще уроки про оконные функции.

  • @none9430
    @none94302 жыл бұрын

    Огромное спасибо за видео! Очень доходчиво и понятно объясняете!

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо за отзыв!

  • @user-dj9wl6xy6b
    @user-dj9wl6xy6b Жыл бұрын

    Спасибо) быстро, четко, понятно)

  • @mrprogre_avandy
    @mrprogre_avandy3 жыл бұрын

    Да, понятно излагаете.. не понял только почему на 3:59 в результате поле max_salary равняется просто salary, а не максимальное по группе

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Очень хороший вопрос. Просто не самый удачный пример с order by :) Цель именно этого блока кода - показать, как в коде задается сортировка внутри агрегатной оконной функции. Поздно обратил внимание на момент с самими данными (точнее с их суммированием), переснимать видео уже не стал.

  • @mrprogre_avandy

    @mrprogre_avandy

    3 жыл бұрын

    @@ExcelStore аа, нет, тогда всё хорошо.. просто я думал что чего-то не понял

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    @@mrprogre_avandy В идеале, конечно, чтобы там сумма была - все-таки в этом суть оконной функции (в части sum). Но тогда с order by нужен был другой пример. В общем, я упустил момент, но в целом свою роль блок выполняет - показывает как работает order by в оконной функции. Спасибо, что обратили внимание. Мне на самом деле было любопытно, заметит кто-то этот нюанс или нет. Заметили :)

  • @mrprogre_avandy

    @mrprogre_avandy

    3 жыл бұрын

    @@ExcelStore просто я работаю уже 2 года в plsql developer и сами знаете, одна неточность и миллиард строк кода делают всё наоборот.. вот и обращаю внимание на мелочи.. думаю я не один такой. Ваши видео пересматриваю, чтобы не забыть теорию. Спасибо за труды! :)

  • @igormsk3262

    @igormsk3262

    2 жыл бұрын

    @@ExcelStore Ещё как заметили, два дня голову ломал, пока в комментарии не заглянул ) А ролик отличный . Спасибо за очень понятное изложение материала

  • @user-cn1zx1hi9r
    @user-cn1zx1hi9r3 жыл бұрын

    Спасибо за видео.

  • @user-kn2rf6ed6n
    @user-kn2rf6ed6n2 жыл бұрын

    спасибо! все очень понятно!

  • @user-wz9vl9li7q
    @user-wz9vl9li7q2 жыл бұрын

    Спасибо Вам большое за Ваш труд!!!!

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Рад, что видео понравилось!

  • @user-pj7dd6kr1z
    @user-pj7dd6kr1z3 жыл бұрын

    Всегда как-то с опаской смотрел на эти агрегатные и тем более оконные функции в SQL. Буду изучать. Спасибо, Максим. Отдельная благодарность за Вашу группу в Телеграме.

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Спасибо, Павел, за отзыв. Да, начинающих пользователей SQL оконные функции обычно отпугивают, есть такое. Тут главное, более менее крепко изучить базу и потом уделить время на логику работы этих оконных функций. Они не так страшны, как кажутся, если как следует в них разобраться.

  • @user-zt1im8yw5d
    @user-zt1im8yw5d3 жыл бұрын

    Класс. Спасибо за очередное полезное видео!

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Рад, что видео было полезным. Будут вопросы, спрашивайте в нашей группе в Телеграм (ссылка в описании под видео).

  • @Retribution19
    @Retribution192 жыл бұрын

    Всё понятно и доступно, прям разжевал как нужно)) Спасибо большое!

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо за отзыв!

  • @TheDar642
    @TheDar64212 күн бұрын

    Хорошо обясняешь

  • @DMITRIYGeorgia
    @DMITRIYGeorgia9 ай бұрын

    Спасибо

  • @Dmitry-xj1hc
    @Dmitry-xj1hc Жыл бұрын

    Спасибо!

  • @user-wb1qx5jz3p
    @user-wb1qx5jz3p Жыл бұрын

    Красавчик 👍

  • @optimum1971
    @optimum19712 жыл бұрын

    Класс! Я все поняла, хотя раньше не встречалась с этим понятием, спасибо)

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Супер! ))

  • @user-gu1tc1bf9x
    @user-gu1tc1bf9x2 жыл бұрын

    Описано доходчиво и понятно, спасибо)

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо, Рустам!

  • @Calmasastone
    @Calmasastone Жыл бұрын

    Максим, привет! Спасибо тебе за видео. Полезные фишки, как всегда ^_^

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Спасибо за добрый отзыв!

  • @user-cb5qw6qu9f
    @user-cb5qw6qu9f3 жыл бұрын

    Очень полезно про оконные функции.

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Будут еще видео про оконные функции. Подписывайтесь на канал, чтобы быть в курсе новых публикаций.

  • @user-js6sq3xy3v
    @user-js6sq3xy3v3 жыл бұрын

    Доступно и понятно

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Спасибо!

  • @SQL-Excel-IT
    @SQL-Excel-IT Жыл бұрын

    Хорошее видео!

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Спасибо! Рад, что видео понравилось.

  • @sheinpavel4694
    @sheinpavel46942 жыл бұрын

    Cпасибо

  • @user-hk2po2xb3s
    @user-hk2po2xb3s Жыл бұрын

    отличное видео

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Спасибо!

  • @user-nf3ih7xy6k
    @user-nf3ih7xy6k3 жыл бұрын

    Ждем продолжения истории про оконные функции

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Спасибо. Продолжение обязательно будет.

  • @Platonov_Ilya
    @Platonov_Ilya2 жыл бұрын

    Спасибо! Круто!

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо за отзыв!

  • @vasylmetelkov8297
    @vasylmetelkov82972 жыл бұрын

    Супер, Спасибо!

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Спасибо за отзыв! В плейлисте, кроме этого, есть еще 3 видео про оконные функции.

  • @vasylmetelkov8297

    @vasylmetelkov8297

    2 жыл бұрын

    @@ExcelStore 2 из них я уже просмотрел. Остался крайний 😉

  • @egoruzhanin4642
    @egoruzhanin46428 ай бұрын

    норм спасибо

  • @user-ny9ux9ss8n
    @user-ny9ux9ss8n9 ай бұрын

    Доля сотрудника в чем высчитывается ? Там не указанно . Очень быстро объяснили ))) Два пожара было рядом )))

  • @user-oq7lm6ub8n
    @user-oq7lm6ub8n6 ай бұрын

    А подскажите, пожалуйста, как при такой сортировке показать, например, только максимальные значения (т.е. выбрать топ-1 значение по зп в департаменте, например).

  • @Dayplaylist
    @Dayplaylist2 жыл бұрын

    Комментарии для поддержки канала 😌

  • @Zero-oh8ib
    @Zero-oh8ib Жыл бұрын

    Макс, супер подача, освежился прямо, пойду ка я на собес, надо прибавочку! Один момент, у тебя потрясный голос, но чутка бы энергии туда вложить, а то, такое ощущение, что ты колыбельку читаешь дочурке! без обид, спс за шикарный видос!

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Саня, есть такое )) Это не потому, что энергии нет. Так получается. Обычно видео записываю поздно ночью, дети уже спят и я автоматом начинаю говорить тихо. Вот и выходит почти как колыбельная :)

  • @samiraxmedov3394
    @samiraxmedov33949 ай бұрын

    🙏🏼

  • @0Bunin
    @0Bunin3 жыл бұрын

    Классно, одуплить бы это теперь На собеседовании была задача на оконные функции, а в обычных самоучителях про них не упоминается Спасибо!

  • @ExcelStore

    @ExcelStore

    3 жыл бұрын

    Спасибо за отзыв. Это только первое видео из серии оконных функций. На канале еще есть про ранжирующие оконные функции + в ближайшее время планирую выпуск видео про аналитические оконные функции. Оконные функции - тема большая и интересная.

  • @user-sv1em4jc7i
    @user-sv1em4jc7i2 жыл бұрын

    3:50 Не понял почему после ORDER BY значение в MAX_SALARY перестало быть равно максимальному значению в JOB_ID

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    Если коротко. Добавив order by в оконную функцию, мы изменили границы окон, которые в свою очередь влияют на расчет используемой нами функции (в данном случае count). Про границы оконных функций я делал отдельное видео: kzread.info/dash/bejne/q5l90bhxY5Xge9o.html

  • @user-rk4cq5il9z
    @user-rk4cq5il9z2 жыл бұрын

    Спасибо за видео. Единственное, что не понял что значит "подтянем наименование департаментов". Тайминг 4:38

  • @ExcelStore

    @ExcelStore

    2 жыл бұрын

    В таблице employees (нашей основной таблице в запросе) нет наименований департаментов, только их ID (department_id). Поэтому фраза "подтянем наименование департаментов" означает, что используя left join, мы из таблицы departments по ключу department_id получим (выведем в селекте) наименования департаментов.

  • @user-ed1hy3by5p
    @user-ed1hy3by5p Жыл бұрын

    А разве на 3:55 добавлением "order by salary" вы не поломали ранее правильное решение, выводящее максимальную зарплату для каждого вида job_id? После этого запрос в столбце max_salary стал выводить зарплату каждого сотрудника, а не максимальную в его направлении работы.

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Да, поломал. Но в конкретно в данном примере это не критично, т.к. в этом отрезке видео я показывал просто как работает сортировка в оконной функции, без привязки к бизнес логике.

  • @askarkamzinov3963
    @askarkamzinov3963 Жыл бұрын

    У вас на 4:03 после того как вы сделали сортировку по зарплатам, ваш столбец максимальная зарплата перестала работать

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    Могу ошибаться, но мне кажется, что я вам уже отвечал на этот вопрос под другим комментарием. А так да, вы правы. В данном случае это не критично. т.к. идет демонстрация возможности сортировки в оконке как таковой, без привязки к бизнес смыслу.

  • @universum9876
    @universum9876 Жыл бұрын

    1:25 Тут нужен не LEFT, а просто JOIN 🙈

  • @ivani3237
    @ivani3237 Жыл бұрын

    с сортировкой только косяк, не так она работает

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    в чем именно ошибка, как правильно должно быть?

  • @ivani3237

    @ivani3237

    Жыл бұрын

    @@ExcelStore order by внутри оконной функции действует только на результат этой функции, для сортировки основного рекордсета не предназначено, то что оно отсортировалось - сайд эффект, негарантированный

  • @ExcelStore

    @ExcelStore

    Жыл бұрын

    @@ivani3237 Да, я это знаю. Видать, оговорился в видео. Спасибо за замечание.

  • @user-nf2tv2kc4x
    @user-nf2tv2kc4x7 ай бұрын

    Спасибо!

  • @user-dq8pd1id9j
    @user-dq8pd1id9j3 жыл бұрын

    Спасибо