#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
Если будут какие-либо вопросы по обучению SQL:
1. Под видео ссылка на нашу группу в Телеграм, где вы всегда можете задать интересующие вас вопросы.
2. Ссылка на Базовый курс SQL: ruclips.net/p/PLKl9v2TQvIkq4i_hZwZ1PmobxJSkIGwBf
Не знаю, насколько понятно для новичков, но для тех, кому нужно просто освежить в памяти материал - такой формат заходит отлично! Кратко, по делу, без "воды" на час и т.п. Спасибо!
Спасибо за отзыв! На днях опубликую еще одно видео из серии оконных функций.
Мне это видео помогло понять работу оконных функций лучше чем статья на хабре, спасибо за разбор понятных примеров!
Офигенно структурированный материл!
Спасибо огромное!❤ мне и в голову не приходило, что результат оконной функции можно использовать как значение для расчета. Это видео открыло мне глаза. И то, что скобки можно оставлять пустыми для агрегации по всей таблице. Спасибо. Жить стало приятнее.
Наконец-то понял для себя, как работать с оконными функциями
Спасибо. Рад, что видео оказалось полезным.
Очень полезное видео. Спасибо! 👍👍👍 И за тайм-коды на видео отдельная благодарность!
Спасибо) быстро, четко, понятно)
Максим, спасибо огромное, все суперпонятно, хорошие примеры, без воды, отличная работа!! 👍
Спасибо за отзыв!
Давно ждал видео про оконные функции. Спасибо.
Спасибо. Это только первое видео из серии оконных функций. В ближайшие 2-3 недели будут еще уроки про оконные функции.
Спасибо, что делитесь своими знаниями.
Татьяна, спасибо за отзыв!
Спасибо за видео.
спасибо! все очень понятно!
Огромное спасибо за видео! Очень доходчиво и понятно объясняете!
Спасибо за отзыв!
Всё понятно и доступно, прям разжевал как нужно)) Спасибо большое!
Спасибо за отзыв!
Хорошо обясняешь
Красавчик 👍
Класс! Я все поняла, хотя раньше не встречалась с этим понятием, спасибо)
Супер! ))
Максим, привет!
Спасибо тебе за видео. Полезные фишки, как всегда ^_^
Спасибо за добрый отзыв!
Класс. Спасибо за очередное полезное видео!
Рад, что видео было полезным. Будут вопросы, спрашивайте в нашей группе в Телеграм (ссылка в описании под видео).
Всегда как-то с опаской смотрел на эти агрегатные и тем более оконные функции в SQL. Буду изучать. Спасибо, Максим. Отдельная благодарность за Вашу группу в Телеграме.
Спасибо, Павел, за отзыв. Да, начинающих пользователей SQL оконные функции обычно отпугивают, есть такое. Тут главное, более менее крепко изучить базу и потом уделить время на логику работы этих оконных функций. Они не так страшны, как кажутся, если как следует в них разобраться.
Спасибо Вам большое за Ваш труд!!!!
Рад, что видео понравилось!
Спасибо!
Описано доходчиво и понятно, спасибо)
Спасибо, Рустам!
Спасибо
Очень полезно про оконные функции.
Будут еще видео про оконные функции. Подписывайтесь на канал, чтобы быть в курсе новых публикаций.
Хорошее видео!
Спасибо! Рад, что видео понравилось.
Ждем продолжения истории про оконные функции
Спасибо. Продолжение обязательно будет.
отличное видео
Спасибо!
Доступно и понятно
Спасибо!
Cпасибо
Спасибо! Круто!
Спасибо за отзыв!
Супер, Спасибо!
Спасибо за отзыв! В плейлисте, кроме этого, есть еще 3 видео про оконные функции.
@@ExcelStore 2 из них я уже просмотрел. Остался крайний 😉
норм спасибо
Да, понятно излагаете.. не понял только почему на 3:59 в результате поле max_salary равняется просто salary, а не максимальное по группе
Очень хороший вопрос. Просто не самый удачный пример с order by :)
Цель именно этого блока кода - показать, как в коде задается сортировка внутри агрегатной оконной функции. Поздно обратил внимание на момент с самими данными (точнее с их суммированием), переснимать видео уже не стал.
@@ExcelStore аа, нет, тогда всё хорошо.. просто я думал что чего-то не понял
@@mrprogre_avandy В идеале, конечно, чтобы там сумма была - все-таки в этом суть оконной функции (в части sum). Но тогда с order by нужен был другой пример. В общем, я упустил момент, но в целом свою роль блок выполняет - показывает как работает order by в оконной функции.
Спасибо, что обратили внимание. Мне на самом деле было любопытно, заметит кто-то этот нюанс или нет. Заметили :)
@@ExcelStore просто я работаю уже 2 года в plsql developer и сами знаете, одна неточность и миллиард строк кода делают всё наоборот.. вот и обращаю внимание на мелочи.. думаю я не один такой. Ваши видео пересматриваю, чтобы не забыть теорию. Спасибо за труды! :)
@@ExcelStore Ещё как заметили, два дня голову ломал, пока в комментарии не заглянул ) А ролик отличный . Спасибо за очень понятное изложение материала
Комментарии для поддержки канала 😌
Классно, одуплить бы это теперь
На собеседовании была задача на оконные функции, а в обычных самоучителях про них не упоминается
Спасибо!
Спасибо за отзыв.
Это только первое видео из серии оконных функций. На канале еще есть про ранжирующие оконные функции + в ближайшее время планирую выпуск видео про аналитические оконные функции.
Оконные функции - тема большая и интересная.
Доля сотрудника в чем высчитывается ? Там не указанно . Очень быстро объяснили ))) Два пожара было рядом )))
Макс, супер подача, освежился прямо, пойду ка я на собес, надо прибавочку! Один момент, у тебя потрясный голос, но чутка бы энергии туда вложить, а то, такое ощущение, что ты колыбельку читаешь дочурке! без обид, спс за шикарный видос!
Саня, есть такое ))
Это не потому, что энергии нет. Так получается. Обычно видео записываю поздно ночью, дети уже спят и я автоматом начинаю говорить тихо. Вот и выходит почти как колыбельная :)
🙏🏼
А подскажите, пожалуйста, как при такой сортировке показать, например, только максимальные значения (т.е. выбрать топ-1 значение по зп в департаменте, например).
Спасибо за видео. Единственное, что не понял что значит "подтянем наименование департаментов". Тайминг 4:38
В таблице employees (нашей основной таблице в запросе) нет наименований департаментов, только их ID (department_id). Поэтому фраза "подтянем наименование департаментов" означает, что используя left join, мы из таблицы departments по ключу department_id получим (выведем в селекте) наименования департаментов.
У вас на 4:03 после того как вы сделали сортировку по зарплатам, ваш столбец максимальная зарплата перестала работать
Могу ошибаться, но мне кажется, что я вам уже отвечал на этот вопрос под другим комментарием. А так да, вы правы. В данном случае это не критично. т.к. идет демонстрация возможности сортировки в оконке как таковой, без привязки к бизнес смыслу.
3:50 Не понял почему после ORDER BY значение в MAX_SALARY перестало быть равно максимальному значению в JOB_ID
Если коротко. Добавив order by в оконную функцию, мы изменили границы окон, которые в свою очередь влияют на расчет используемой нами функции (в данном случае count). Про границы оконных функций я делал отдельное видео: ruclips.net/video/yeIoV832zKw/видео.html
А разве на 3:55 добавлением "order by salary" вы не поломали ранее правильное решение, выводящее максимальную зарплату для каждого вида job_id?
После этого запрос в столбце max_salary стал выводить зарплату каждого сотрудника, а не максимальную в его направлении работы.
Да, поломал. Но в конкретно в данном примере это не критично, т.к. в этом отрезке видео я показывал просто как работает сортировка в оконной функции, без привязки к бизнес логике.
1:25 Тут нужен не LEFT, а просто JOIN 🙈
с сортировкой только косяк, не так она работает
в чем именно ошибка, как правильно должно быть?
@@ExcelStore order by внутри оконной функции действует только на результат этой функции, для сортировки основного рекордсета не предназначено, то что оно отсортировалось - сайд эффект, негарантированный
@@ivani3237 Да, я это знаю. Видать, оговорился в видео. Спасибо за замечание.
Спасибо!
Спасибо