Введение в SQL
В данном модуле вы изучите основы SQL от SELECT до простых аггрегаций и join.
Задачи модуля
-
Вводная
К вам пришел аналитик продукта и попросил быстро посмотреть, какие товары есть в каталоге интернет-магазина.
Условие
В таблице products хранятся товары интернет-магазина. Выведите первые 10 товаров из каталога.
Таблицы для анализа- products
- product_id
- product_name
- category_name
- base_price
- использовать таблицу products
- вывести только указанные поля
- вывести первые 10 строк
- сортировку не применять
-
Вводная
К вам пришел менеджер и попросил быстро посмотреть, какие активные товары сейчас самые дорогие. Это необходимо для сверки данных с фактическими продажами.
Условие
В таблице products хранятся товары интернет-магазина. Оставьте только активные товары и отсортируйте их по базовой цене от самой высокой к самой низкой.
Таблицы для анализа- products
- product_id
- product_name
- category_name
- base_price
- is_active
- оставить только строки, где is_active = TRUE
- отсортировать результат по убыванию base_price
- вывести первые 10 строк
-
Вводная
К вам пришел коммерческий директор и попросил посмотреть товары из дорогого ценового сегмента.
Условие
В таблице products хранятся товары интернет-магазина. Выведите товары, у которых базовая цена больше 5000.
Таблицы для анализа- products
- product_id
- product_name
- category_name
- base_price
- оставить только строки, где base_price > 500
- отсортировать результат по убыванию base_price
-
Вводная
К вам пришел операционный менеджер с подозрением, что не все статусы у заказов попадают в базу данных.
Условие
В таблице orders хранятся заказы интернет-магазина. Выведите все уникальные статусы заказов.
Таблицы для анализа- orders
- order_status
- использовать таблицу orders
- вывести уникальные значения order_status
- в результате не должно быть дублей
- отсортировать результат по возрастанию order_status
-
Вводная
К вам пришла команда поддержки и попросила посмотреть заказы, которые еще не были доставлены.
Условие
В таблице orders хранятся заказы интернет-магазина. Выведите все заказы, у которых статус не равен delivered.
Таблицы для анализа
- orders
- order_id
- customer_id
- order_date
- order_status
- оставить только строки, где order_status != 'delivered'
- отсортировать результат по убыванию order_date
-
Вводная
К вам пришел маркетолог и попросил понять, сколько клиентов относится к каждому клиентскому сегменту.
Условие
В таблице customers хранятся данные о клиентах интернет-магазина. Посчитайте количество клиентов в каждом сегменте.
Таблицы для анализа- customers
- customer_segment customers_count
- сгруппировать данные по customer_segment
- посчитать количество клиентов в каждом сегменте
- назвать колонку с количеством customers_count
- отсортировать результат по убыванию customers_count
-
Вводная
К вам пришла команда поддержки и попросила посмотреть, сколько заказов находится в каждом статусе.
Условие
В таблице orders хранятся заказы интернет-магазина. Посчитайте количество заказов для каждого статуса.
Таблицы для анализа- orders
- order_status
- orders_count
- сгруппировать данные по order_status
- посчитать количество заказов в каждом статусе
- назвать колонку с количеством orders_count
- отсортировать результат по убыванию orders_count
-
Вводная
К вам пришел категорийный менеджер и попросил сравнить категории по средней базовой цене товаров.
Условие
В таблице products хранятся товары интернет-магазина. Посчитайте среднюю базовую цену товаров в каждой категории.
Таблицы для анализа- products
- category_name
- avg_base_price
- сгруппировать данные по category_name
- посчитать среднее значение base_price
- округлить среднюю цену до 2 знаков после запятой
- назвать колонку со средней ценой avg_base_price
- отсортировать результат по убыванию avg_base_price
-
Вводная
К вам пришел бизнес-аналитик и попросил вывести товары не только с категорией, но и с департаментом, к которому эта категория относится.
Условие
В таблице products хранятся товары, а в таблице categories — справочник категорий. Соедините эти таблицы и выведите товары вместе с департаментом.
Таблицы для анализа- products
- categories
- product_id
- product_name
- category_name
- department
- base_price
- соединить таблицы products и categories
- использовать поле category_id для соединения
- вывести только указанные поля
- отсортировать результат по возрастанию product_id
-
Вводная
К вам пришел коммерческий директор и попросил понять, какие товары принесли больше всего денег.
Условие
В таблице order_items хранятся товары внутри заказов, а в таблице products — справочник товаров. Посчитайте выручку по каждому товару.
Выручку считайте как сумму по:
Таблицы для анализаquantity * unit_price- order_items
- products
- product_id
- product_name
- revenue
- соединить таблицы order_items и products
- использовать поле product_id для соединения
- посчитать выручку по каждому товару
- выручку считать как SUM(quantity * unit_price)
- округлить выручку до 2 знаков после запятой
- назвать колонку с выручкой revenue
- сгруппировать результат по товару
- отсортировать результат по убыванию revenue
- вывести первые 10 строк