#10. Оконные функции в SQL (Агрегатные оконные функции)
HTML-код
- Опубликовано: 20 июн 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 оконные функции обычно отпугивают, есть такое. Тут главное, более менее крепко изучить базу и потом уделить время на логику работы этих оконных функций. Они не так страшны, как кажутся, если как следует в них разобраться.
Доступно и понятно
Спасибо!
Спасибо!
Ждем продолжения истории про оконные функции
Спасибо. Продолжение обязательно будет.
Хорошее видео!
Спасибо! Рад, что видео понравилось.
Спасибо! Круто!
Спасибо за отзыв!
отличное видео
Спасибо!
Спасибо
Супер, Спасибо!
Спасибо за отзыв! В плейлисте, кроме этого, есть еще 3 видео про оконные функции.
@@ExcelStore 2 из них я уже просмотрел. Остался крайний 😉
Cпасибо
норм спасибо
Да, понятно излагаете.. не понял только почему на 3:59 в результате поле max_salary равняется просто salary, а не максимальное по группе
Очень хороший вопрос. Просто не самый удачный пример с order by :)
Цель именно этого блока кода - показать, как в коде задается сортировка внутри агрегатной оконной функции. Поздно обратил внимание на момент с самими данными (точнее с их суммированием), переснимать видео уже не стал.
@@ExcelStore аа, нет, тогда всё хорошо.. просто я думал что чего-то не понял
@@mrprogre_avandy В идеале, конечно, чтобы там сумма была - все-таки в этом суть оконной функции (в части sum). Но тогда с order by нужен был другой пример. В общем, я упустил момент, но в целом свою роль блок выполняет - показывает как работает order by в оконной функции.
Спасибо, что обратили внимание. Мне на самом деле было любопытно, заметит кто-то этот нюанс или нет. Заметили :)
@@ExcelStore просто я работаю уже 2 года в plsql developer и сами знаете, одна неточность и миллиард строк кода делают всё наоборот.. вот и обращаю внимание на мелочи.. думаю я не один такой. Ваши видео пересматриваю, чтобы не забыть теорию. Спасибо за труды! :)
@@ExcelStore Ещё как заметили, два дня голову ломал, пока в комментарии не заглянул ) А ролик отличный . Спасибо за очень понятное изложение материала
Комментарии для поддержки канала 😌
Классно, одуплить бы это теперь
На собеседовании была задача на оконные функции, а в обычных самоучителях про них не упоминается
Спасибо!
Спасибо за отзыв.
Это только первое видео из серии оконных функций. На канале еще есть про ранжирующие оконные функции + в ближайшее время планирую выпуск видео про аналитические оконные функции.
Оконные функции - тема большая и интересная.
Доля сотрудника в чем высчитывается ? Там не указанно . Очень быстро объяснили ))) Два пожара было рядом )))
Макс, супер подача, освежился прямо, пойду ка я на собес, надо прибавочку! Один момент, у тебя потрясный голос, но чутка бы энергии туда вложить, а то, такое ощущение, что ты колыбельку читаешь дочурке! без обид, спс за шикарный видос!
Саня, есть такое ))
Это не потому, что энергии нет. Так получается. Обычно видео записываю поздно ночью, дети уже спят и я автоматом начинаю говорить тихо. Вот и выходит почти как колыбельная :)
🙏🏼
У вас на 4:03 после того как вы сделали сортировку по зарплатам, ваш столбец максимальная зарплата перестала работать
Могу ошибаться, но мне кажется, что я вам уже отвечал на этот вопрос под другим комментарием. А так да, вы правы. В данном случае это не критично. т.к. идет демонстрация возможности сортировки в оконке как таковой, без привязки к бизнес смыслу.
Спасибо за видео. Единственное, что не понял что значит "подтянем наименование департаментов". Тайминг 4:38
В таблице employees (нашей основной таблице в запросе) нет наименований департаментов, только их ID (department_id). Поэтому фраза "подтянем наименование департаментов" означает, что используя left join, мы из таблицы departments по ключу department_id получим (выведем в селекте) наименования департаментов.
А подскажите, пожалуйста, как при такой сортировке показать, например, только максимальные значения (т.е. выбрать топ-1 значение по зп в департаменте, например).
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 Да, я это знаю. Видать, оговорился в видео. Спасибо за замечание.
Спасибо!
Спасибо