Afficher le nombre de commandes et "produits de la catégorie nécessaire dans la commande" pour l'année 2021 dans les catégories "Vêtements" et pour 2022 dans la catégorie "Chaussures" (vue finale : 2 lignes. Champs : année, nombre de produits, nombre de commandes) 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 = 'Vêtements' and Year(o.order_date) = 2021) or (g.cat_1 = 'Chaussures' and Year(o.order_date) = 2022) group by year_orders, g.cat_1 ) select year_orders, count_quan, count_orders from cte pour 2025, top 3 dans chaque catégorie par quantité de ventes model 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 ) pour 2025, top 3 dans chaque catégorie par somme des ventes model 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 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
Data Engineer
1. Commandes: - order_date datetime NON NULL - user_id int NON NULL - order_id int NON NULL 2. Biens: - order_id int NON NULL - model int NON NULL - cat_1 varchar(50) NON NULL - price int NON NULL - quantity int NON NULL Valeurs dans cat_1: - Vêtements - Chaussures - Cosmétiques - Articles pour la maison - Jouets Afficher le nombre de commandes et "le nombre de produits de la catégorie requise dans la commande" pour l'année 2021 dans les catégories "Vêtements" et pour 2022 dans la catégorie "Chaussures" (forme finale : 2 lignes. Champs : année, nombre de produits, nombre de commandes) 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 = 'Vêtements' and Year(o.order_date) = 2021 or g.cat_1 = 'Chaussures' and Year(o.order_date) = 2022 group by year_orders, g.cat_1 ) select year_orders, count_quan, count_orders from cte
Pourquoi avez-vous décidé de mettre le classement dans une CTE séparée ? Pourquoi ne pas l'avoir utilisé directement dans la première CTE ?