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

Поделиться
HTML-код
  • Опубликовано: 22 май 2024
  • В сегодняшнем уроке начинаем рассмотрение интересной и полезной темы в 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
    @ExcelStore  3 года назад +11

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

  • @user-nj2uo2wm2c
    @user-nj2uo2wm2c 2 года назад +41

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

    • @ExcelStore
      @ExcelStore  2 года назад

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

  • @user-xx9cf5cd3b
    @user-xx9cf5cd3b Год назад +4

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

  • @shelton6100
    @shelton6100 Месяц назад

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

  • @olegkonyushevsky6216
    @olegkonyushevsky6216 Месяц назад

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

  • @user-fz7oc5kr3n
    @user-fz7oc5kr3n 3 года назад +6

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

    • @ExcelStore
      @ExcelStore  3 года назад

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

  • @user-lh6xe3zi1t
    @user-lh6xe3zi1t 7 месяцев назад +1

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

  • @user-dj9wl6xy6b
    @user-dj9wl6xy6b Год назад +1

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

  • @MissKilley
    @MissKilley 2 года назад +5

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

    • @ExcelStore
      @ExcelStore  2 года назад

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

  • @user-yc3qj7ky9c
    @user-yc3qj7ky9c 3 года назад +2

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

    • @ExcelStore
      @ExcelStore  3 года назад +1

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

  • @-excelpowerpointword6260
    @-excelpowerpointword6260 Год назад +2

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

    • @ExcelStore
      @ExcelStore  Год назад

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

  • @user-cn1zx1hi9r
    @user-cn1zx1hi9r 3 года назад +1

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

  • @user-kn2rf6ed6n
    @user-kn2rf6ed6n 2 года назад +1

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

  • @none9430
    @none9430 2 года назад +2

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

    • @ExcelStore
      @ExcelStore  2 года назад +1

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

  • @Retribution19
    @Retribution19 2 года назад +1

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

    • @ExcelStore
      @ExcelStore  2 года назад

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

  • @TheDar642
    @TheDar642 3 дня назад

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

  • @user-wb1qx5jz3p
    @user-wb1qx5jz3p Год назад +1

    Красавчик 👍

  • @optimum1971
    @optimum1971 2 года назад +1

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

  • @Calmasastone
    @Calmasastone Год назад +1

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

    • @ExcelStore
      @ExcelStore  Год назад +1

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

  • @user-zt1im8yw5d
    @user-zt1im8yw5d 3 года назад +1

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

    • @ExcelStore
      @ExcelStore  3 года назад +1

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

  • @user-pj7dd6kr1z
    @user-pj7dd6kr1z 3 года назад +1

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

    • @ExcelStore
      @ExcelStore  3 года назад +2

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

  • @user-wz9vl9li7q
    @user-wz9vl9li7q 2 года назад +1

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

    • @ExcelStore
      @ExcelStore  2 года назад +2

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

  • @user-nf2tv2kc4x
    @user-nf2tv2kc4x 7 месяцев назад +1

    Спасибо!

  • @user-gu1tc1bf9x
    @user-gu1tc1bf9x 2 года назад +1

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

    • @ExcelStore
      @ExcelStore  2 года назад

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

  • @DMITRIYGeorgia
    @DMITRIYGeorgia 8 месяцев назад +1

    Спасибо

  • @user-cb5qw6qu9f
    @user-cb5qw6qu9f 3 года назад +1

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

    • @ExcelStore
      @ExcelStore  3 года назад

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

  • @SQL-Excel-IT
    @SQL-Excel-IT Год назад +1

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

    • @ExcelStore
      @ExcelStore  Год назад

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

  • @user-nf3ih7xy6k
    @user-nf3ih7xy6k 3 года назад +1

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

    • @ExcelStore
      @ExcelStore  3 года назад

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

  • @user-hk2po2xb3s
    @user-hk2po2xb3s Год назад +1

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

  • @user-js6sq3xy3v
    @user-js6sq3xy3v 3 года назад +1

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

  • @sheinpavel4694
    @sheinpavel4694 2 года назад

    Cпасибо

  • @Platonov_Ilya
    @Platonov_Ilya 2 года назад +1

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

    • @ExcelStore
      @ExcelStore  2 года назад +1

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

  • @vasylmetelkov8297
    @vasylmetelkov8297 2 года назад +1

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

    • @ExcelStore
      @ExcelStore  2 года назад +2

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

    • @vasylmetelkov8297
      @vasylmetelkov8297 2 года назад +1

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

  • @egoruzhanin4642
    @egoruzhanin4642 7 месяцев назад +1

    норм спасибо

  • @mrprogre_avandy
    @mrprogre_avandy 3 года назад +19

    Да, понятно излагаете.. не понял только почему на 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 года назад +3

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

    • @igormsk3262
      @igormsk3262 2 года назад +3

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

  • @Dayplaylist
    @Dayplaylist 2 года назад +1

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

  • @0Bunin
    @0Bunin 3 года назад +2

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

    • @ExcelStore
      @ExcelStore  3 года назад +2

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

  • @user-ny9ux9ss8n
    @user-ny9ux9ss8n 9 месяцев назад +2

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

  • @Zero-oh8ib
    @Zero-oh8ib Год назад +1

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

    • @ExcelStore
      @ExcelStore  Год назад

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

  • @samiraxmedov3394
    @samiraxmedov3394 8 месяцев назад +1

    🙏🏼

  • @user-oq7lm6ub8n
    @user-oq7lm6ub8n 5 месяцев назад

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

  • @user-rk4cq5il9z
    @user-rk4cq5il9z 2 года назад

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

    • @ExcelStore
      @ExcelStore  2 года назад

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

  • @askarkamzinov3963
    @askarkamzinov3963 Год назад +1

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

    • @ExcelStore
      @ExcelStore  Год назад +1

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

  • @user-sv1em4jc7i
    @user-sv1em4jc7i 2 года назад +1

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

    • @ExcelStore
      @ExcelStore  2 года назад +1

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

  • @user-ed1hy3by5p
    @user-ed1hy3by5p Год назад

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

    • @ExcelStore
      @ExcelStore  Год назад

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

  • @universum9876
    @universum9876 Год назад

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

  • @ivani3237
    @ivani3237 Год назад

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

    • @ExcelStore
      @ExcelStore  Год назад

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

    • @ivani3237
      @ivani3237 Год назад +1

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

    • @ExcelStore
      @ExcelStore  Год назад

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

  • @Dmitry-xj1hc
    @Dmitry-xj1hc Год назад +1

    Спасибо!

  • @user-dq8pd1id9j
    @user-dq8pd1id9j 3 года назад +1

    Спасибо