Конструкция WITH в языке SQL

  Рет қаралды 16,973

Prime Soft (Студия Прайм)

Prime Soft (Студия Прайм)

Күн бұрын

Пікірлер: 78
@worlzpnz
@worlzpnz 2 жыл бұрын
Доступно и информативно изложен материал! У Вас самые лучшие уроки!
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Екатерина! Спасибо Вам большое за внимание и комментарий!
@bauyrzhannurimbetov6330
@bauyrzhannurimbetov6330 10 ай бұрын
Илья спасибо за урок. Все просто и наглядно объяснили!
@AleksanderKorablev
@AleksanderKorablev Жыл бұрын
Отличные туториалы, все понятно и наглядно показано
@PrimeSoft
@PrimeSoft Жыл бұрын
Спасибо Вам! Очень приятно!
@МихаилСемерухин
@МихаилСемерухин 2 жыл бұрын
Спасибо, крутейшее видео!!!!!! Читал несколько статей на тему использования 'WITH', смотрел несколько видео - ничего не понял)) А у Вас с первого раза всё понял! Нашел задачку на использование 'WITH' и используя знания полученные в этом видео решил её самостоятельно решил за 5 минут😀
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Михаил, спасибо Вам большое за такой мощный комментарий! Очень приятно! Буду стараться ещё:)
@rudinandrey
@rudinandrey Жыл бұрын
было мегапонятно!! спасибо большое, пришел сюда из документации Postgresql ) где ничего не понял. Спасибо что Вы есть.
@irinasayma9013
@irinasayma9013 2 жыл бұрын
Ну наконец-то я поняла про with. У вас самое понятное объяснение
@vaniL_57
@vaniL_57 2 жыл бұрын
Илья, спасибо, хорошее объяснение
@Maxvell909
@Maxvell909 27 күн бұрын
Круто и понятно! 👌🏻👍
@chupachups6546
@chupachups6546 2 жыл бұрын
Илья как всегда - на высшем уровне👍 Не описать чувство благодарности Вам!
@АлександрПатрушев-е5х
@АлександрПатрушев-е5х 11 ай бұрын
классно рассказал, подробно и понятно, спасибо большое
@_vukivur2164
@_vukivur2164 Жыл бұрын
Все понятно! Суппер, спасибо, Илья)
@ВикторСтепанов-ы8в
@ВикторСтепанов-ы8в Жыл бұрын
Спасибо большое, все очень понятно изложено доступным языком!!!
@justice3171
@justice3171 2 жыл бұрын
Спасибо за информативно видео
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо Вам, что нашли время для отзыва!
@БауыржанУалханов
@БауыржанУалханов 2 жыл бұрын
Все отлично понятно. Хотя я это уже знал, но было приятно посмотреть. 👍
@nataliaistomina2454
@nataliaistomina2454 2 жыл бұрын
омг, ты, меня спас)! отличный гайд.
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо! Очень приятно слышать!
@КОЛЯСАХНЕВИЧ-к6ц
@КОЛЯСАХНЕВИЧ-к6ц 2 жыл бұрын
Отличный урок, Илья! Всё понятно. Большое спасибо!
@tz389
@tz389 2 жыл бұрын
Как всегда лайк, очень доступно объясняете. Спасибо.
@eb6006
@eb6006 Жыл бұрын
Спасибо! Много нового узнал! Объяснено очень доходчиво
@andrei1996
@andrei1996 Жыл бұрын
Спасибо, объяснено все доходчиво
@Sannikov.a.a
@Sannikov.a.a 2 жыл бұрын
Как всегда, хорошая и уверенная подача материала Спасибо за ваши уроки :)
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо Вам, Артём!
@モリトモリ
@モリトモリ 10 ай бұрын
спасибо большое! теперь мне стало все предельно понятно)
@konstantin3826
@konstantin3826 2 жыл бұрын
Спасибо за еще один хороший урок!
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Константин! Спасибо Вам большое за внимание! Спасибо, что нашли время написать комментарий. Очень приятно!
@mrsarlberg7285
@mrsarlberg7285 Жыл бұрын
спасибо! доходчиво объяснили👍
@александрСобко-ф5э
@александрСобко-ф5э 2 жыл бұрын
Спасибо, WITH полезный прием) Скоро придем к вам на курс
@ВикторПистолет
@ВикторПистолет 2 жыл бұрын
молодец , давай еще видео по sql . жду с нетерпением
@vadimkorontsevich1066
@vadimkorontsevich1066 2 жыл бұрын
Если нужно узнать как работает WITH, смотрите сразу с 9:20
@НиязСахтаев-ъ3в
@НиязСахтаев-ъ3в Жыл бұрын
Полезно, спасибо !
@ОлегТумаков-щ1ц
@ОлегТумаков-щ1ц Жыл бұрын
Спасибо!
@максимсахновский-ш5у
@максимсахновский-ш5у 2 жыл бұрын
Хороший лектор - рекомендую.
@АлександрБаранов-е8щ
@АлександрБаранов-е8щ 9 ай бұрын
спасибо за видео!
@PrimeSoft
@PrimeSoft 9 ай бұрын
Спасибо за внимание! :)
@STEPanovMaksim
@STEPanovMaksim 10 ай бұрын
Спасибо! :)
@c3akidonamy-pubg
@c3akidonamy-pubg 7 ай бұрын
Ели нашёл достаточно информации на русском, надеюсь в sqlite работает аналогично, побежал тестить!) спасибо
@igorlabusov577
@igorlabusov577 2 жыл бұрын
как всегда СУПЕР))
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Игорь! Большое спасибо Вам за внимание!
@1boxingclub378
@1boxingclub378 2 жыл бұрын
То что в универах 5 лет объясняют ,тут становится понятным за один урок!
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо Вам большое за такой отзыв!
@ВадимМатюхин-я6ш
@ВадимМатюхин-я6ш 2 жыл бұрын
Тебе пять лет объясняли что такое with ?) Советую проверить учреждение в котором ты находился;)
@1boxingclub378
@1boxingclub378 2 жыл бұрын
@@ВадимМатюхин-я6ш А его и проверять не надо. Уже и так самый х...вуз на юге рф стал))
@Coreduo
@Coreduo Жыл бұрын
Красавчик
@ИльяВарламов-ю9о
@ИльяВарламов-ю9о 2 жыл бұрын
Прекрасно, спасибо!)
@fradbredway2665
@fradbredway2665 2 жыл бұрын
Добрый! Спасибо за труд! Вопрос такой если в запросе grup by сделать ещё и сортировку по сумме, а в последнем условии сумма=(select сумма from rownum
@ic3shot_
@ic3shot_ 2 жыл бұрын
нет
@rayman4x4
@rayman4x4 2 жыл бұрын
В данном случае t - это обычный подзапрос. Подозреваю, что WITH используется в более сложных запросах, где такой подзапрос выполняется многократно. И придумано это было для повышения производительности таких запросов. Подзапрос с WITH вычисляется только один раз, кэшируется, и большой запрос выполняется быстрее. Потому что не приходится получать результирующую выборку подзапроса каждый раз при обращении к ней.
@akss9245
@akss9245 Жыл бұрын
Значит при обновлении основной таблицы t не перевычисляется? В t будут старые данные?
@rayman4x4
@rayman4x4 Жыл бұрын
@@akss9245 зависит от БД. В Оракле будут данные на момент чтения, даже если сразу после выполнения селекта, который длится какое-то время, они изменились. В SQL Server зависит от того, как она настроена. Грубо говоря, мешают ли читатели писателям и наоборот. Если мешают, то никто их не изменит, пока не закончится селект. Надо смотреть уровни изолированности транзакций.
@akss9245
@akss9245 Жыл бұрын
@@rayman4x4 спасибо!
@ПросториНезламногоТранспорту
@ПросториНезламногоТранспорту 2 жыл бұрын
Где найти скрипты для развертывания баз, которые используются как в данном уроке так и в каждом???
@trrt9756
@trrt9756 2 жыл бұрын
Благодарю за урок приятно слушать, жаль что курс заканчивается
@badoboroten1206
@badoboroten1206 Жыл бұрын
Музыка на фоне как будто я смотрю не только про группировку, а на фоге играет музыка какой-нибудь спортивной тренировки
@dias9707
@dias9707 Жыл бұрын
можно же ORDER BY desc использовать или внутренний запрос на макс зарплату
@ДискотрактористПетрович
@ДискотрактористПетрович Ай бұрын
это все таки синтаксический сахар, поаккуратнее с ним. если внутри with бдует куча джоинов или обращений другим базам или даже вьюхам, все может дико тупить, особенно если там на этих базах будут проходить параллельно процессы типа truncate или delete. лучше загонять запрос во времянку, я думаю
@AleksandrFetisov-y2j
@AleksandrFetisov-y2j 2 жыл бұрын
Спасибо. Очень интересно. Хотел бы послушать хороший разбор про JOIN и ORDER BY, а то везде такая мелкая выжимка, как это работает.
@drakula_6175
@drakula_6175 2 жыл бұрын
Можете сделать видео на тему перебора строк в Select? Бывает, что нужно вывести строки с определенными преобразованиями и условиями и приходится перебирать всё через While с использованием Offset fetch rows only(Пропуск строк)
@СергейСухов-з8е
@СергейСухов-з8е 5 ай бұрын
в чем преимущества With?!? можно таким же образом использовать подзапрос
@xenaio
@xenaio 2 жыл бұрын
Много положительного уже сказано, но хотелось бы внести немного критики: 1. Чувствуется, что не хватает сценария. План явно есть, а вот подобрать слова "на лету" не получается. В результате много самоповторов и лишних ответвлений от темы. 2. По большому счёту 14 минут видео можно было уложить в минут 5-7, которые свелись бы к примерно следующему сценарию: - Всем привет, меня зовут _______, я являюсь ведущим разработчиком Oracle SQL в компании Prime Soft и рад приветствовать вас на нашем канале. Сегодня я расскажу вам про конструкцию WITH и как оптимизировать запросы к СУБД для ускорения работы вашего ПО. - Описание вашей задачи ("У нас есть таблица с начислениями, нужно получить сотрудников, которые получили максимальные начисления за период") - Как работает неоптимизированный запрос (я так понимаю, он предполагает вложенные запросы) и почему он является неоптимизированным (запрос дважды бегает в базу, что занимает время) - Как улучшить запрос (создать виртуальную таблицу t.* в оперативной памяти и бегать в неё, потому что она в быстром доступе и содержит меньше количество строк, поэтому её быстрее обрабатывать) - Надеюсь, вам понравилось. Кстати, наша компания занимается тем-то тем-то тем-то (если предполагает, что вас могут смотреть потенциальные клиенты-программисты, которым лень разбираться и проще нанять аутсорс под задачу), а также в описании вы можете найти ссылку на страницу вакансий, возможно, вам будет с нами интересно (если у вас есть вакансии). Всё, вот всё видео. 3. Зачем было показывать вариант с введением числа? 11:21 Это же прямое нарушение ТЗ "Определить сотрудников с максимальными выплатами за период". Признаться, чуть не закрыл в этот момент видео, решив, что на этом всё закончится. Показывать неправильно нужно только тогда, когда неправильный вариант кажется логичным решением, но имеет под собой какие-то минусы. А это - просто зря потраченные 2 минуты видео. 4. Звук. Звук очень тихий и очень высокий. И это не проблема голоса, это проблема микрофона и постобработки. Посмотрите среднестатистическое видео на ютубе и поймёте, какой уровень звука должен быть, чтобы ради просмотра вашего видео зрителю не приходилось крутить громкость. 5. Идея с вебкой отличная, но поскольку вы ничего гениального не показываете на неё, её можно сделать меньше, тогда не придётся её теребонькать по всему экрану, чтобы она ничего не загораживала. 6. Для справки: функция to_date есть в Oracle SQL (судя по тому, что я нашел), но, например, в MySQL её нет. А большинство среднестатистических зрителей подобного контента будут работать как раз либо с ним, либо с PostgreSQL. Учитывайте диалекты SQL и обязательно указывайте везде, где возможно, с каким диалектом работаете именно вы. А в идеале указывайте, какие функции делают то же самое в популярных диалектах, если там есть отличия. Кстати, информацию о ПО, СУБД и т.д. можно размещать в описании или в закрепленном комментарии. 7. 6:36 очень полезное уточнение, не спорю. Но во-первых, зачем вы группируете по ID и по ФИО? Сами же говорите, что эти поля всегда будут уникальны. А СУБД лишнюю проверку делать нужно. Во-вторых, вы, машущий руками, конечно, неплохая визуализация того, что происходит, но если не полениться и сделать анимацию/снять на видео, как рисуете на листочке/показать в рамках реального запроса - было бы в 100 раз понятнее и заняло бы раз в 5 меньше времени.
@HillClimbWorld
@HillClimbWorld Жыл бұрын
Чем отличается with от create view?
@EdwardNorthwind
@EdwardNorthwind Жыл бұрын
with это временная про именованная таблица, она не будет храниться вечно, а просто кешируется для многократного обращения. А view это постоянное представление.
@HillClimbWorld
@HillClimbWorld Жыл бұрын
@@EdwardNorthwind спасибо за разъяснение
@kekand0s141
@kekand0s141 2 жыл бұрын
почему нельзя было в конец запроса поставить букву t, далее навернуть select и так же обращаться например select t.name from(прошлый запрос)
@kekand0s141
@kekand0s141 2 жыл бұрын
или select t.* from(прошлый запрос)
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте! Тогда бы нам пришлось ещё раз писать тот же запрос в подзапросе (select max()...(прошлый запрос)). То есть один и тот же селект писали бы два раза.
@oqykz
@oqykz 5 ай бұрын
надо было наглядно показать два кейса: с with и без. так не успел понять что выиграю если буду юзать
@PrimeSoft
@PrimeSoft 5 ай бұрын
Добрый день! Приходите, пожалуйста, к нам на курс по SQL. Все постарался рассказать наглядно и подробно: prime-soft.biz/courses/sql
@virtualvortex3146
@virtualvortex3146 2 жыл бұрын
А нельзя было составить такую конструкцию? WITH t AS( ........) SELECT MAX( SUM_PAYMENTS ) FROM t . Мне кажется так было бы немного проще.
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте! Тогда бы мы знали только стоимость самого дорогого блюда, но на знали бы его названия.
@virtualvortex3146
@virtualvortex3146 2 жыл бұрын
@@PrimeSoft понятно, дякую!
@Respecti-uv9tq
@Respecti-uv9tq 10 ай бұрын
Я досмотрел и поставил лайк. Подача отвратительная( Попробуй писать сценарий, проговаривать его. Жду новые видео, удачи
@Vadim_igraet
@Vadim_igraet 2 жыл бұрын
Пока рассказывают, - понятно. Как только начинаешь сам выполнять то чувствуешь себя полным говном 😂
@АлексейСоловьев-о9д
@АлексейСоловьев-о9д Жыл бұрын
Жиза
@АлександрПатрушев-е5х
@АлександрПатрушев-е5х 11 ай бұрын
а если сразу написать в конце WHERE t.SUM_PAYMENTS = MAX(t.SUM_PAYMENTS) так не прошло бы?
Как не надо делать сортировку в SQL запросах
16:42
Prime Soft (Студия Прайм)
Рет қаралды 5 М.
SISTER EXPOSED MY MAGIC @Whoispelagheya
00:45
MasomkaMagic
Рет қаралды 13 МЛН
Я сделала самое маленькое в мире мороженое!
00:43
Кушать Хочу
Рет қаралды 4,9 МЛН
Cool Parenting Gadget Against Mosquitos! 🦟👶 #gen
00:21
TheSoul Music Family
Рет қаралды 32 МЛН
My Daughter's Dumplings Are Filled With Coins #funny #cute #comedy
00:18
Funny daughter's daily life
Рет қаралды 35 МЛН
Group By, Having, Rollup, Like, Common Table Expression (CTE) SQL
21:33
Уйти в АйТи
Рет қаралды 2,3 М.
Курс по SQL. Урок 15. Общие табличные выражения (CTE).
19:47
Оператор CASE SQL. Примеры CASE WHEN
10:01
Database Programmer
Рет қаралды 11 М.
#10. Оконные функции в SQL (Агрегатные оконные функции)
6:51
Максим Кухарь [Изучаем Excel, VBA, SQL]
Рет қаралды 43 М.
Подзапросы | Основы SQL
7:12
Andrey Sozykin
Рет қаралды 56 М.
Типы cоединений в SQL | Основы SQL
7:07
Andrey Sozykin
Рет қаралды 59 М.
SISTER EXPOSED MY MAGIC @Whoispelagheya
00:45
MasomkaMagic
Рет қаралды 13 МЛН