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

  Рет қаралды 17,583

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

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

Күн бұрын

Пікірлер: 82
@superqwertyah2996
@superqwertyah2996 Ай бұрын
Очень просто объяснили, 1000 лайков Вам! Наконец понятно, зачем нужна конструкция With
@worlzpnz
@worlzpnz 2 жыл бұрын
Доступно и информативно изложен материал! У Вас самые лучшие уроки!
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Екатерина! Спасибо Вам большое за внимание и комментарий!
@kira3196
@kira3196 Ай бұрын
Спасибо большое за видео❤
@Maxvell909
@Maxvell909 3 ай бұрын
Круто и понятно! 👌🏻👍
@vadimkorontsevich1066
@vadimkorontsevich1066 2 жыл бұрын
Если нужно узнать как работает WITH, смотрите сразу с 9:20
@AleksanderKorablev
@AleksanderKorablev Жыл бұрын
Отличные туториалы, все понятно и наглядно показано
@PrimeSoft
@PrimeSoft Жыл бұрын
Спасибо Вам! Очень приятно!
@nataliaistomina2454
@nataliaistomina2454 2 жыл бұрын
омг, ты, меня спас)! отличный гайд.
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо! Очень приятно слышать!
@bauyrzhannurimbetov6330
@bauyrzhannurimbetov6330 Жыл бұрын
Илья спасибо за урок. Все просто и наглядно объяснили!
@МихаилСемерухин
@МихаилСемерухин 2 жыл бұрын
Спасибо, крутейшее видео!!!!!! Читал несколько статей на тему использования 'WITH', смотрел несколько видео - ничего не понял)) А у Вас с первого раза всё понял! Нашел задачку на использование 'WITH' и используя знания полученные в этом видео решил её самостоятельно решил за 5 минут😀
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Михаил, спасибо Вам большое за такой мощный комментарий! Очень приятно! Буду стараться ещё:)
@justice3171
@justice3171 2 жыл бұрын
Спасибо за информативно видео
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо Вам, что нашли время для отзыва!
@rudinandrey
@rudinandrey Жыл бұрын
было мегапонятно!! спасибо большое, пришел сюда из документации Postgresql ) где ничего не понял. Спасибо что Вы есть.
@vaniL_57
@vaniL_57 2 жыл бұрын
Илья, спасибо, хорошее объяснение
@irinasayma9013
@irinasayma9013 2 жыл бұрын
Ну наконец-то я поняла про with. У вас самое понятное объяснение
@_vukivur2164
@_vukivur2164 Жыл бұрын
Все понятно! Суппер, спасибо, Илья)
@ВикторСтепанов-ы8в
@ВикторСтепанов-ы8в 2 жыл бұрын
Спасибо большое, все очень понятно изложено доступным языком!!!
@АлександрПатрушев-е5х
@АлександрПатрушев-е5х Жыл бұрын
классно рассказал, подробно и понятно, спасибо большое
@БауыржанУалханов
@БауыржанУалханов 2 жыл бұрын
Все отлично понятно. Хотя я это уже знал, но было приятно посмотреть. 👍
@tz389
@tz389 2 жыл бұрын
Как всегда лайк, очень доступно объясняете. Спасибо.
@chupachups6546
@chupachups6546 2 жыл бұрын
Илья как всегда - на высшем уровне👍 Не описать чувство благодарности Вам!
@КОЛЯСАХНЕВИЧ-к6ц
@КОЛЯСАХНЕВИЧ-к6ц 2 жыл бұрын
Отличный урок, Илья! Всё понятно. Большое спасибо!
@eb6006
@eb6006 2 жыл бұрын
Спасибо! Много нового узнал! Объяснено очень доходчиво
@モリトモリ
@モリトモリ Жыл бұрын
спасибо большое! теперь мне стало все предельно понятно)
@andrei1996
@andrei1996 Жыл бұрын
Спасибо, объяснено все доходчиво
@максимсахновский-ш5у
@максимсахновский-ш5у 2 жыл бұрын
Хороший лектор - рекомендую.
@konstantin3826
@konstantin3826 2 жыл бұрын
Спасибо за еще один хороший урок!
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Константин! Спасибо Вам большое за внимание! Спасибо, что нашли время написать комментарий. Очень приятно!
@александрСобко-ф5э
@александрСобко-ф5э 2 жыл бұрын
Спасибо, WITH полезный прием) Скоро придем к вам на курс
@FX42RIGDEN
@FX42RIGDEN Ай бұрын
Все очень понятно, чтобы все так объясняли xD
@igorlabusov577
@igorlabusov577 2 жыл бұрын
как всегда СУПЕР))
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте, Игорь! Большое спасибо Вам за внимание!
@ВикторПистолет
@ВикторПистолет 2 жыл бұрын
молодец , давай еще видео по sql . жду с нетерпением
@Sannikov.a.a
@Sannikov.a.a 2 жыл бұрын
Как всегда, хорошая и уверенная подача материала Спасибо за ваши уроки :)
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо Вам, Артём!
@mrsarlberg7285
@mrsarlberg7285 Жыл бұрын
спасибо! доходчиво объяснили👍
@Coreduo
@Coreduo 2 жыл бұрын
Красавчик
@ОлегТумаков-щ1ц
@ОлегТумаков-щ1ц Жыл бұрын
Спасибо!
@АлександрБаранов-е8щ
@АлександрБаранов-е8щ 11 ай бұрын
спасибо за видео!
@PrimeSoft
@PrimeSoft 11 ай бұрын
Спасибо за внимание! :)
@НиязСахтаев-ъ3в
@НиязСахтаев-ъ3в Жыл бұрын
Полезно, спасибо !
@STEPanovMaksim
@STEPanovMaksim Жыл бұрын
Спасибо! :)
@ПросториНезламногоТранспорту
@ПросториНезламногоТранспорту 2 жыл бұрын
Где найти скрипты для развертывания баз, которые используются как в данном уроке так и в каждом???
@ruslanultan1689
@ruslanultan1689 2 ай бұрын
привет из 2024! все понятно))
@ИльяВарламов-ю9о
@ИльяВарламов-ю9о 2 жыл бұрын
Прекрасно, спасибо!)
@c3akidonamy-pubg
@c3akidonamy-pubg 10 ай бұрын
Ели нашёл достаточно информации на русском, надеюсь в sqlite работает аналогично, побежал тестить!) спасибо
@fradbredway2665
@fradbredway2665 2 жыл бұрын
Добрый! Спасибо за труд! Вопрос такой если в запросе grup by сделать ещё и сортировку по сумме, а в последнем условии сумма=(select сумма from rownum
@ic3shot_
@ic3shot_ 2 жыл бұрын
нет
@dias9707
@dias9707 Жыл бұрын
можно же ORDER BY desc использовать или внутренний запрос на макс зарплату
@1boxingclub378
@1boxingclub378 2 жыл бұрын
То что в универах 5 лет объясняют ,тут становится понятным за один урок!
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Спасибо Вам большое за такой отзыв!
@ВадимМатюхин-я6ш
@ВадимМатюхин-я6ш 2 жыл бұрын
Тебе пять лет объясняли что такое with ?) Советую проверить учреждение в котором ты находился;)
@1boxingclub378
@1boxingclub378 2 жыл бұрын
@@ВадимМатюхин-я6ш А его и проверять не надо. Уже и так самый х...вуз на юге рф стал))
@ДискотрактористПетрович
@ДискотрактористПетрович 3 ай бұрын
это все таки синтаксический сахар, поаккуратнее с ним. если внутри with бдует куча джоинов или обращений другим базам или даже вьюхам, все может дико тупить, особенно если там на этих базах будут проходить параллельно процессы типа truncate или delete. лучше загонять запрос во времянку, я думаю
@rayman4x4
@rayman4x4 2 жыл бұрын
В данном случае t - это обычный подзапрос. Подозреваю, что WITH используется в более сложных запросах, где такой подзапрос выполняется многократно. И придумано это было для повышения производительности таких запросов. Подзапрос с WITH вычисляется только один раз, кэшируется, и большой запрос выполняется быстрее. Потому что не приходится получать результирующую выборку подзапроса каждый раз при обращении к ней.
@akss9245
@akss9245 Жыл бұрын
Значит при обновлении основной таблицы t не перевычисляется? В t будут старые данные?
@rayman4x4
@rayman4x4 Жыл бұрын
@@akss9245 зависит от БД. В Оракле будут данные на момент чтения, даже если сразу после выполнения селекта, который длится какое-то время, они изменились. В SQL Server зависит от того, как она настроена. Грубо говоря, мешают ли читатели писателям и наоборот. Если мешают, то никто их не изменит, пока не закончится селект. Надо смотреть уровни изолированности транзакций.
@akss9245
@akss9245 Жыл бұрын
@@rayman4x4 спасибо!
@trrt9756
@trrt9756 2 жыл бұрын
Благодарю за урок приятно слушать, жаль что курс заканчивается
@СергейСухов-з8е
@СергейСухов-з8е 7 ай бұрын
в чем преимущества With?!? можно таким же образом использовать подзапрос
@badoboroten1206
@badoboroten1206 Жыл бұрын
Музыка на фоне как будто я смотрю не только про группировку, а на фоге играет музыка какой-нибудь спортивной тренировки
@HillClimbWorld
@HillClimbWorld 2 жыл бұрын
Чем отличается with от create view?
@EdwardNorthwind
@EdwardNorthwind Жыл бұрын
with это временная про именованная таблица, она не будет храниться вечно, а просто кешируется для многократного обращения. А view это постоянное представление.
@HillClimbWorld
@HillClimbWorld Жыл бұрын
@@EdwardNorthwind спасибо за разъяснение
@drakula_6175
@drakula_6175 2 жыл бұрын
Можете сделать видео на тему перебора строк в Select? Бывает, что нужно вывести строки с определенными преобразованиями и условиями и приходится перебирать всё через While с использованием Offset fetch rows only(Пропуск строк)
@AleksandrFetisov-y2j
@AleksandrFetisov-y2j 2 жыл бұрын
Спасибо. Очень интересно. Хотел бы послушать хороший разбор про JOIN и ORDER BY, а то везде такая мелкая выжимка, как это работает.
@kekand0s141
@kekand0s141 2 жыл бұрын
почему нельзя было в конец запроса поставить букву t, далее навернуть select и так же обращаться например select t.name from(прошлый запрос)
@kekand0s141
@kekand0s141 2 жыл бұрын
или select t.* from(прошлый запрос)
@PrimeSoft
@PrimeSoft 2 жыл бұрын
Здравствуйте! Тогда бы нам пришлось ещё раз писать тот же запрос в подзапросе (select max()...(прошлый запрос)). То есть один и тот же селект писали бы два раза.
@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 меньше времени.
@oqykz
@oqykz 8 ай бұрын
надо было наглядно показать два кейса: с with и без. так не успел понять что выиграю если буду юзать
@PrimeSoft
@PrimeSoft 8 ай бұрын
Добрый день! Приходите, пожалуйста, к нам на курс по 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 Жыл бұрын
Я досмотрел и поставил лайк. Подача отвратительная( Попробуй писать сценарий, проговаривать его. Жду новые видео, удачи
@Vadim_igraet
@Vadim_igraet 2 жыл бұрын
Пока рассказывают, - понятно. Как только начинаешь сам выполнять то чувствуешь себя полным говном 😂
@АлексейСоловьев-о9д
@АлексейСоловьев-о9д 2 жыл бұрын
Жиза
@АлександрПатрушев-е5х
@АлександрПатрушев-е5х Жыл бұрын
а если сразу написать в конце WHERE t.SUM_PAYMENTS = MAX(t.SUM_PAYMENTS) так не прошло бы?
Как не надо делать сортировку в SQL запросах
16:42
Prime Soft (Студия Прайм)
Рет қаралды 5 М.
Group By, Having, Rollup, Like, Common Table Expression (CTE) SQL
21:33
Уйти в АйТи
Рет қаралды 2,4 М.
Caleb Pressley Shows TSA How It’s Done
0:28
Barstool Sports
Рет қаралды 60 МЛН
SLIDE #shortssprintbrasil
0:31
Natan por Aí
Рет қаралды 49 МЛН
ЗАДАЧИ с СОБЕСЕДОВАНИЙ по SQL с РЕШЕНИЯМИ!
31:23
ОБУЧЕНИЕ И КАРЬЕРА В IT
Рет қаралды 16 М.
Интерактивный тренажер по SQL на Stepik. Урок 1
30:32
Дилетант широкого профиля
Рет қаралды 3,5 М.
ОКОННЫЕ ФУНКЦИИ SQL за 13 минут
13:46
Listen IT
Рет қаралды 57 М.
ИНДЕКСЫ В БАЗАХ ДАННЫХ. СОБЕС В OZON.
33:59
Ваня Ио про разработку
Рет қаралды 71 М.
SQL Базовый №11. CTE
25:27
Товарищ Excel - Power Query, Power Pivot, Python
Рет қаралды 2,9 М.
ТРАНЗАКЦИИ И БЛОКИРОВКИ ПРОСТЫМ ЯЗЫКОМ
31:13
Ваня Ио про разработку
Рет қаралды 30 М.
Подзапросы | Основы SQL
7:12
Andrey Sozykin
Рет қаралды 58 М.