Mostrare il numero di ordini e "prodotti della categoria necessaria nell'ordine" per il 2021 nelle categorie "Abbigliamento" e per il 2022 nella categoria "Calzature" (vista finale: 2 righe. Campi: anno, numero di prodotti, numero di ordini)
with cte as(
select
year(o.order_date) as year_orders,
g.cat_1,
count(distinct o.order_id) as count_orders,
sum(g.quantity) as count_quan
from Orders o
join Goods g on o.order_id = g.order_id
where (g.cat_1 = 'Abbigliamento' and Year(o.order_date) = 2021) or
(g.cat_1 = 'Calzature' and Year(o.order_date) = 2022)
group by year_orders, g.cat_1
)
select year_orders, count_quan, count_orders
from cte
per il 2025, i primi 3 in ogni categoria per quantità di vendita modello
with cte as(
select cat_1, price, quantity, model,
rank() over(partition by cat_1) as rk
from Orders o
join Goods g on o.order_id = g.order_id
where Year(o.order_date) = 2025
)
per il 2025, i primi 3 in ogni categoria per somma di vendite modello
with cte as(
select g.cat_1, g.model, (price * quantity),
rank() over(partition by g.cat_1) as rk
from Orders o
join Goods g on o.order_id = g.order_id
where Year(o.order_date) = 2025
)
with cte as(
select g.cat_1, g.model, sum(price * quantity) as sum_,
rank() over(partition by g.cat_1 order by sum() desc) as rk
from Orders o
join Goods g on o.order_id = g.order_id
where Year(o.order_date) = 2025
)
with cte1 as(
select g.cat_1, g.model, sum(price * quantity) as sum_total,
from Orders o
join Goods g on o.order_id = g.order_id
where Year(o.order_date) = 2025
),
cte2 as(select g.cat_1, g.model, sum_total, rank() over(partition by g.cat_1 order sum_total desc) as rk
from cte1
)
select g.cat_1, g.model, sum_total
from cte2
where rk <=3
conoscere il nome della categoria, il modello e il totale delle vendite (top 3)
with cte1 as(
select g.cat_1 as cat_name, g.model as model,
sum(price * quantity) as sum_total,
from Orders o
join Goods g on o.order_id = g.order_id
where Year(o.order_date) = 2025
group by Year(o.order_date), g.model
),
cte2 as(select cat_name, model, sum_total,
rank() over(partition by cat_name order sum_total desc) as rk
from cte1
)
select cat_name, model, sum_total
from cte2
where rk <=3