SQL код скопирован в буфер обмена
Отточите свои навыки SQL с помощью наших интерактивных упражнений!
Практикуйте широкий спектр SQL-задач, от базовых запросов до сложных техник. Получайте мгновенную обратную связь на свои решения, чтобы учиться на ошибках и совершенствовать свои навыки. Увеличьте свою уверенность для собеседований и реальных приложений SQL.
Задание  80:
Создайте запрос SQL, чтобы найти клиентов, которые взяли напрокат больше фильмов, чем среднее количество прокатов среди всех клиентов. Используйте подзапрос для расчета среднего количества аренд.
Результирующая таблица должна содержать следующие столбцы: customer_id – уникальный идентификатор клиента, first_name – имя клиента, last_name — фамилия клиента.
rental_count — количество взятых напрокат фильмов

Напишите ваш запрос в поле ниже и нажмите кнопку "Проверить!"

Для написания ответа используйте синтаксис MySQL. Описания таблиц приведены в правой панели.

Откройте для себя более 280 уникальных заданий.

Войдите, чтобы сохранить свой прогресс.

База данных Sakila (MySQL)

ER диаграмма базы данных Sakila

Sakila - это пример базы данных, разработанный компанией MySQL, специально созданный для обучения и демонстрации возможностей систем управления базами данных (СУБД) на основе реляционной модели.

База данных Sakila содержит 15 основных таблиц, описывающих различные аспекты компании по прокату DVD-дисков.

Ниже приведен список этих таблиц:

  • actor - таблица актеров.
  • address - таблица адресов клиентов и сотрудников.
  • category - таблица категорий фильмов.
  • city - таблица городов.
  • country - таблица стран.
  • customer - таблица клиентов в базе данных Sakila.
  • film - таблица фильмов в базе данных Sakila.
  • film_actor - таблица связи актеров и фильмов.
  • film_category - таблица связи фильмов и категорий.
  • inventory - таблица товаров в базе данных Sakila.
  • language - таблица языков фильмов.
  • payment - таблица платежей клиентов.
  • rental - таблица аренды клиентов.
  • staff - таблица сотрудников компании.
  • store - таблица магазинов компании.

Таблица actor

Колонки:
  • actor_id - уникальный идентификатор для каждого актера.
  • first_name - имя актера.
  • last_name - фамилия актера.
  • last_update - временная метка создания или последнего обновления строки.
actor_id first_name last_name last_update
1 John Doe 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (actor_id)

Таблица address

Колонки:
  • address_id - уникальный идентификатор для каждого адреса.
  • address – почтовый адрес.
  • address2 – дополнительный адрес.
  • district – район или регион.
  • city_id - внешний ключ, ссылающийся на таблицу городов.
  • postal_code – почтовый индекс.
  • phone – номер телефона.
  • last_update - временная метка создания или последнего обновления строки.
address_id address address2 district city_id postal_code phone last_update
1 123 Main St [null] Downtown 1 12345 +1234567890 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (address_id)

Таблица category

Колонки:
  • category_id – уникальный идентификатор для каждой категории.
  • name - название категории.
  • last_update - временная метка создания или последнего обновления строки.
category_id name last_update
1 Action 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (category_id)

Таблица city

Колонки:
  • city_id – уникальный идентификатор для каждого города.
  • city - название города.
  • country_id - внешний ключ, ссылающийся на таблицу стран.
  • last_update - временная метка создания или последнего обновления строки.
city_id city country_id last_update
1 Metropolis 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (city_id)

Таблица country

Колонки:
  • country_id – уникальный идентификатор для каждой страны.
  • country – название страны.
  • last_update - временная метка создания или последнего обновления строки.
country_id country last_update
1 United States 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (country_id)

Таблица customer

Колонки:
  • customer_id – уникальный идентификатор для каждого клиента.
  • store_id - внешний ключ, ссылающийся на таблицу магазина.
  • first_name – имя клиента.
  • last_name – фамилия клиента.
  • email – адрес электронной почты клиента.
  • address_id - внешний ключ, ссылающийся на таблицу адресов.
  • active – указывает, активен ли клиент.
  • create_date - временная метка, указывающая, когда клиент был добавлен в базу данных.
  • last_update - временная метка создания или последнего обновления строки.
customer_id store_id first_name last_name email address_id active create_date last_update
1 1 John Doe john.doe@example.com 1 true 2023-01-01 12:00:00 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (customer_id)

Таблица film

Колонки:
  • film_id – уникальный идентификатор каждого фильма.
  • title — название фильма.
  • description – краткое описание или сюжет фильма.
  • release_year — год выхода фильма.
  • language_id — внешний ключ, ссылающийся на таблицу language - определяет язык фильма.
  • original_language_id — внешний ключ, указывающий на таблицу language - определяет язык оригинала фильма. Используется, когда фильм дублирован на новый язык.
  • rental_duration — продолжительность периода аренды в днях.
  • rental_rate — стоимость проката фильма на период, указанный в столбце rental_duration.
  • length — продолжительность фильма в минутах.
  • replacement_cost — сумма, взимаемая с покупателя, если пленка не возвращена или возвращена в поврежденном состоянии.
  • rating — рейтинг, присвоенный фильму. Может быть одним из: G, PG, PG-13, R или NC-17.
  • special_features — список общих специальных функций, включенных в DVD. Может быть ноль или более: трейлеры, комментарии, удаленные сцены, за кадром.
  • last_update — временная метка создания или последнего обновления строки.
film_id title description release_year language_id original_language_id rental_duration rental_rate length replacement_cost rating special_features last_update
1 Film Title A brief description of the film. 2000 1 2 5 4.99 120 19.99 PG-13 Trailers, Commentaries 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (film_id)

Таблица film_actor

Колонки:
  • actor_id – уникальный идентификатор актера.
  • film_id – уникальный идентификатор фильма.
  • last_update - временная метка создания или последнего обновления строки.
actor_id film_id last_update
1 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (actor_id, film_id)

Таблица film_category

Колонки:
  • film_id – уникальный идентификатор каждого фильма.
  • category_id – уникальный идентификатор для каждой категории.
  • last_update - временная метка создания или последнего обновления строки.
film_id category_id last_update
1 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (film_id, category_id)

Таблица inventory

Колонки:
  • inventory_id – уникальный идентификатор для каждого элемента.
  • film_id – уникальный идентификатор каждого фильма в таблице.
  • store_id – уникальный идентификатор магазина, в котором находится товар.
  • last_update — временная метка последнего изменения записи.
inventory_id film_id store_id last_update
1 23 2 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (inventory_id)

Таблица language

Колонки:
  • language_id - уникальный идентификатор для каждого языка.
  • name - название языка.
  • last_update - временная метка создания или последнего обновления строки.
language_id name last_update
1 English 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (language_id)

Таблица payment

Колонки:
  • payment_id – уникальный идентификатор для каждого платежа.
  • customer_id - внешний ключ, ссылающийся на таблицу клиентов.
  • staff_id - внешний ключ, ссылающийся на таблицу персонала.
  • rental_id - внешний ключ, ссылающийся на таблицу аренды.
  • amount – сумма платежа.
  • payment_date – дата платежа.
  • last_update - временная метка создания или последнего обновления строки.
payment_id customer_id staff_id rental_id amount payment_date last_update
1 1 1 1 4.99 2023-01-01 12:13:14 2023-01-01 12:14:15
Индексы:
  • PRIMARY KEY, btree (payment_id)

Таблица rental

Колонки:
  • rental_id – уникальный идентификатор для каждой аренды.
  • rental_date – дата, когда произошла аренда.
  • inventory_id - внешний ключ, ссылающийся на таблицу инвентаризации.
  • customer_id - внешний ключ, ссылающийся на таблицу клиентов.
  • return_date – дата возврата взятого напрокат имущества.
  • staff_id - внешний ключ, ссылающийся на таблицу персонала.
  • last_update - временная метка создания или последнего обновления строки.
rental_id rental_date inventory_id customer_id return_date staff_id last_update
1 2023-01-01 16:15:21 1 1 2023-01-10 09:12:36 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (rental_id)

Таблица staff

Колонки:
  • staff_id – уникальный идентификатор каждого сотрудника.
  • first_name – имя сотрудника.
  • last_name - фамилия сотрудника.
  • address_id - внешний ключ, ссылающийся на таблицу адресов.
  • picture – изображение сотрудника.
  • email - адрес электронной почты сотрудника.
  • store_id - внешний ключ, ссылающийся на таблицу магазина.
  • active – указывает, активен ли сотрудник.
  • username - имя пользователя для входа в систему.
  • password - пароль для входа.
  • last_update - временная метка создания или последнего обновления строки.
staff_id first_name last_name address_id picture email store_id active username password last_update
1 John Doe 1 [null] john.doe@example.com 1 true johndoe ******** 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (staff_id)

Таблица store

Колонки:
  • store_id – уникальный идентификатор каждого магазина.
  • manager_staff_id - внешний ключ, ссылающийся на таблицу персонала менеджера магазина.
  • address_id - внешний ключ, ссылающийся на таблицу адресов.
  • last_update - временная метка создания или последнего обновления строки.
store_id manager_staff_id address_id last_update
1 1 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (store_id)