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