Уроки SQL / Базы данных. Практическая задача #1. Оптимизация запроса. MySql / Илья Хохлов

preview_player
Показать описание
Для всех, кто уже прошел курс обучения SQL. Базы данных, ORACLE или прошел минимум пол курса, мы предлагаем попрактиковаться в решении дополнительных сложных задач по SQL.
Также, если Вы не обучались на нашем курсе, но совершенствуетесь в SQL, - присоединяйтесь!

На этом уроке мы решаем задачу оптимизации запроса в области складской логистики. Сегодня работаем в СУБД MySql.

Параметры для подключения к общей тестовой базе MySQL:
Пользователь: srv43968_test
Пароль: test01
Порт: 3306
База данных: srv43968_test
Рекомендации по теме
Комментарии
Автор

Походу запилил видос пока ждал выгрузку данных))) а мои 15 минут жизни кто теперь вернет! Я же ждал ответ! )))

operhause
Автор

Отлично! Побольше задачек. Осилю курс обучения и сразу за задачки! Благодарю!

marysparrow
Автор

Было бы интересно узнать про доступ в базу данных из Delphi. Дело в том, что стандартные средства работы с базами данных неудобные и хотелось бы сделать свой графический интерфейс для ввода информации и запуска запросов. Само собой сама база данных будет сделана в штатном графическом интерфейсе, типа SSMS для SQL Server, но в нем неудобно делать рутинный ввод информации и запуск рабочих запросов и хотелось бы сделать свой простенький интерфейс, например в RAD Studio. Дело в том, что есть база и в неё надо по 10 раз в день вводить информацию о своем состоянии и желательно сделать что-то простое и быстрое.

anreechase
Автор

Итак, есть склад, давайте представим у нас есть склад, большой склад, на этом складе есть контейнеры, есть контейнеры, контейнеров много и в каждом контейнере лежат коробки, в каждом контейнере много коробок... у нас есть на складе контейнеры, в контейнерах есть коробки

я так и не понял, есть ли у нас склад, контейнеры и коробки, автор, освети эту тему более подробно пожалуйста 🙏🏼

Megagundar
Автор

Спасибо! Как раз перед собеседованием немного натаскаться.
Пересмотрел половину ваших видео уже)

Art-ubsg
Автор

Друзья, есть ли предположения по оптимизации запроса?

PrimeSoft
Автор

select * from containers c
join
(select ID_CONTAINER, ID_CONTAINER_MOVE, sum(length*height*width/10000) as volume
FROM boxes b
WHERE b.ID_STOCK =1
AND b.STATUS =0
AND b.NN_REZERV =0
GROUP BY ID_CONTAINER, ID_CONTAINER_MOVE HAVING volume>50
order by volume) b
on (c.id=b.ID_CONTAINER and b.ID_CONTAINER_MOVE=0) or c.ID =b.ID_CONTAINER_MOVE
WHERE c.STATUS = 0
У меня 24 контейнера получается. Где ошибка?

vadimgavrilov
Автор

Добрый день, подскажите, пожалуйста,что такое cte и как правильно его писать? Пока не совсем могу это понять. Cte это глубина запроса? Где бы почитать более подробно? Заранее благодарю

jns
Автор

Поле "NOMER"? Серьезно? А че "id_deliver" тогда? А не "nomer_DoStAvCHiK"?

asyncawait
Автор

Пустые контейнеры понаотправляете. :)
Там нужно на делить.

yaroslavpiddubnyak
Автор

Сделать JOIN таблиц CONTAINERS и BOXES, а условие указать в предложении HAVING?

Geooos
Автор

много флуда, надо было отедлить в отдельное видео часть про конфигурацию это не всем интересно

androidkasha
Автор

Зачем по 5 раз повторять ненужные фразы? Типо как про кофе?

gunscheler
Автор

SELECT *
FROM containers c
join ( select b.ID_CONTAINER, b.ID_CONTAINER_MOVE, sum(width * height * length/10000) > 50 check_value
from boxes b
where b.ID_STOCK = 1
and b.STATUS = 0
and b.NN_REZERV = 0
and b.ID_CONTAINER_MOVE = 0
GROUP BY b.ID_CONTAINER, b.ID_CONTAINER_MOVE) as t
on ((t.ID_CONTAINER = c.ID and t.ID_CONTAINER_MOVE = 0) OR (t.ID_CONTAINER_MOVE = c.ID))
WHERE c.STATUS = 0 and check_value is true

так правильно?

timik