nltk.app.concordance_app module
COPY имя_таблицы (колонка1, колонка2, колонка3, ...)
FROM 'путь_к_файлу.csv'
DELIMITER ','
CSV HEADER;
-- Задание 1. Вычислить доход от продаж, сгруппированный по году и кварталу (период с 2019 г. до конца 2024 г.).
select
extract(year from o.orderdate) as year, -- Извлекаем год из даты заказа
extract(quarter from o.orderdate) as quarter, -- Извлекаем квартал из даты заказа
sum(od.unitprice * od.quantity * (1 - od.discount)) as revenue -- Считаем доход с учетом скидок
from imech.orders o
join imech.orderdetails od on o.orderid = od.orderid -- Соединяем таблицы заказов и деталей заказов
where o.orderdate between '2019-01-01' and '2024-12-31' -- Фильтруем по дате
group by year, quarter -- Группируем по году и кварталу
order by year, quarter; -- Сортируем по году и кварталу
-- Вывод: Данный запрос позволяет увидеть, как менялся доход от продаж по кварталам за указанный период. Это может помочь в анализе сезонности и выявлении трендов.
-- Задание 2. Найти наиболее популярные категории продаваемых товаров за 2023 год.
select
extract(month from o.orderdate) as month, -- Извлекаем месяц из даты заказа
c.categoryname, -- Имя категории товара
count(od.quantity) as total_quantity_sold -- Считаем общее количество проданных единиц
from imech.orders as o
join imech.orderdetails as od on o.orderid = od.orderid -- Соединяем таблицы заказов и деталей заказов
join imech.products as p on od.productid = p.productid -- Соединяем с таблицей продуктов
join imech.categories as c on p.categoryid = c.categoryid -- Соединяем с таблицей категорий
where extract(year from o.orderdate) = 2023 -- Фильтруем по году
group by month, c.categoryname -- Группируем по месяцу и имени категории
order by month, total_quantity_sold desc; -- Сортируем по месяцу и количеству проданных единиц
-- Вывод: Запрос показывает, какие категории товаров были наиболее популярны в 2023 году по месяцам. Это может помочь в анализе сезонности и планировании запасов.
-- Задание 3. Проанализировать количество оформленных заказов по месяцам за 2024 год.
select
extract(month from orderdate) as month, -- Извлекаем месяц из даты заказа
count(orderid) as total_orders -- Считаем общее количество заказов
from imech.orders
where extract(year from orderdate) = 2024 -- Фильтруем по году
group by month -- Группируем по месяцу
order by month; -- Сортируем по месяцу
-- Вывод: Данный запрос позволяет увидеть, как менялось количество заказов по месяцам в 2024 году. Это может помочь в оценке активности клиентов и планировании ресурсов.
-- Задание 4. Вывести процент скидки и количество клиентов, которых это может затронуть.
select
case
when total_amount > 30000 then '5%' -- Скидка 5% для клиентов с суммой заказа более 30000
when total_amount between 20000 and 30000 then '3%' -- Скидка 3% для клиентов с суммой заказа от 20000 до 30000
when total_amount between 10000 and 20000 then '1%' -- Скидка 1% для клиентов с суммой заказа от 10000 до 20000
else 'нет скидки' -- Нет скидки для клиентов с меньшими суммами
end as discount,
count(distinct customerid) as affected_customers -- Считаем количество уникальных клиентов, которых это затронет
from (
select
o.customerid,
sum(od.unitprice * od.quantity * (1 - od.discount)) as total_amount -- Считаем общую сумму заказов для каждого клиента
from imech.orders o
join imech.orderdetails od on o.orderid = od.orderid
where extract(year from o.orderdate) = 2024 -- Учитываем только заказы за 2024 год
group by o.customerid -- Группируем по клиенту
) subquery
group by discount; -- Группируем по скидке
-- Вывод: Запрос показывает, сколько клиентов может получить скидку в зависимости от суммы их заказов. Это может помочь в принятии решений о скидках и акциях.
-
nltk.app.concordance_app.app()[source]