Отточите свои навыки SQL с помощью наших интерактивных упражнений! Практикуйте широкий спектр SQL-задач, от базовых запросов до сложных техник. Получайте мгновенную обратную связь на свои решения, чтобы учиться на ошибках и совершенствовать свои навыки. Увеличьте свою уверенность для собеседований и реальных приложений SQL.
Доходы от рекламы и пожертвования являются нашими единственными источниками финансирования. Пожалуйста, не отключайте рекламу или внесите посильное пожертвование. Спасибо за Вашу поддержку! 🙏🌟
🎉 Друзья! Рады представить вам наш новый образовательный проект – открытый онлайн-учебник по SQL!
📚 За основу мы взяли проект Querynomicon, который планируем не только перевести, но и адаптировать под потребности русскоязычной аудитории. В перспективе мы хотим развить его до полноценного интерактивного учебника.
🤝 И здесь нам нужна ваша помощь! Проект размещен в открытом Git-репозитории, что позволяет каждому внести свой вклад в его развитие:
Сделайте форк проекта
Внесите свои изменения или дополнения
Отправьте pull request
✅ Все предложения будут внимательно рассмотрены и после модерации добавлены в основной репозиторий.
💡 Давайте вместе создадим качественный ресурс для изучения SQL!
Найдите среднюю сумму выручки с приносимой каждым платящим клиентом для каждого из пунктов аренды
Результат выведите в две колонки store_id и avg_customer_payment, округлив сумму до двух десятичных знаков, отсортируйте результат по номеру магазина
Напишите ваш запрос в поле ниже и нажмите кнопку "Проверить!"
Для написания ответа используйте синтаксис MySQL. Описания таблиц приведены в правой панели.
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 - временная метка создания или последнего обновления строки.