← К оглавлению занятия

⚠️ Ошибки

📁 Блок: Финальный блок / SQL и MongoDB ⏱️ Время изучения: ~90 мин 🎯 Сложность: Практикум

⚡ Кратко: суть занятия

Практикум 20 соединяет две части курса: SQL на базе sakila и MongoDB на коллекции ich.UK_used_cars.

SQL-блок повторяет подсчёт фильмов, категории, фильмы выбранной категории, актёров с количеством фильмов и языки.

Более сложные SQL-задачи требуют найти самого занятого актёра, актёров с более чем 5 фильмами и ранжировать актёров по числу фильмов.

MongoDB-блок повторяет равенство tax: 145, диапазон tax 100-200, логическое OR для tax 145 или 200.

Текстовый поиск ищет слово max в model без учёта регистра через regex /max/i.

Aggregation Pipeline используется для топ-10 частых налогов, списков производителей/моделей без повторов и поиска самых экономичных гибридов.

Главная цель занятия - не выучить новый оператор, а уверенно выбирать подходящий инструмент под задачу.

Топ-3 ошибки: забыть связующую таблицу film_actor, фильтровать агрегаты в WHERE вместо HAVING, написать regex без флага i.

Типичные ошибки

COUNT без связи

Симптом: Если считать актёров напрямую из actor, вы получите число актёров, а не фильмов актёра.

Исправление: Используйте film_actor и группировку по актёру.

WHERE вместо HAVING

Симптом: Условие COUNT(*) > 5 не относится к отдельной строке.

Исправление: Фильтруйте агрегаты через HAVING.

Потерянные актёры при GROUP BY

Симптом: В строгом SQL нельзя выбрать first_name без группировки или агрегата.

Исправление: Группируйте все неагрегированные поля.

Regex без i

Симптом: Запрос /max/ не найдёт MAX или Max.

Исправление: Используйте /max/i или $options: 'i'.

Сортировка до группировки

Симптом: Если отсортировать документы до $group, это не даст топ налогов.

Исправление: Сначала $group, потом $sort и $limit.

Путаница tax и mpg

Симптом: Налог и расход топлива отвечают на разные вопросы.

Исправление: Для экономичности сортируйте Hybrid по mpg DESC.