Подключение
Установите mysql-connector-python, создайте connection, cursor, выполните SQL и закройте соединение.
Revision 1 повторяет подключение MySQL из Python и практику SQL по базе sakila.
В Python используется mysql-connector-python: подключение, cursor, execute, fetchall, description, DataFrame и close.
SQL-повторение начинается с поиска фильмов по LIKE "%LION%" и подсчёта таких фильмов.
JOIN film, film_category и category нужен для вывода фильмов с категориями.
ORDER BY length DESC LIMIT 10 показывает самые длинные фильмы.
GROUP BY category и HAVING фильтруют категории по количеству фильмов.
Оконные функции AVG(...) OVER (PARTITION BY name) и DENSE_RANK() OVER (...) добавляют агрегаты без схлопывания строк.
Топ-3 ошибки: забыть закрыть соединение, фильтровать Horror по неверному category_id, путать GROUP BY и оконную агрегацию.
Установите mysql-connector-python, создайте connection, cursor, выполните SQL и закройте соединение.
rows = cursor.fetchall(); columns = [col[0] for col in cursor.description]; pd.DataFrame(rows, columns=columns).
WHERE title LIKE "%LION%"; для количества используйте COUNT(*).
JOIN film_category по film_id и фильтр category_id = 11, как указано в источнике.
Добавьте JOIN category ON category.category_id = film_category.category_id.
ORDER BY length DESC LIMIT 10.
Группируйте по c.name и считайте COUNT(f.title).
После GROUP BY добавьте HAVING films > 20 или другой порог, который требуется в задании.
AVG(length) OVER (PARTITION BY c.name) не схлопывает строки, а добавляет агрегат к каждой строке.
DENSE_RANK() OVER (ORDER BY length DESC) ранжирует фильмы по длине.