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]