diff --git a/README b/README index 920f6bc..d05e386 100644 --- a/README +++ b/README @@ -3,247 +3,3 @@ Hello everyone You can watch all my little scripts in C and Perl. Enjoy ! - -MANGEZ - -SELECT date, SUM(dollars) AS total_dollars, - SUM(SUM(dollars)) OVER(ORDER BY date ROWS UNBOUNDED PRECEDING) AS run_dollars, - SUM(quantity) AS total_qty, - SUM(SUM(quantity)) OVER(ORDER BY date ROWS UNBOUNDED PRECEDING) AS run_qty - FROM aroma.period a, aroma.sales b, aroma.product c - WHERE a.perkey = b.perkey - AND c.prodkey = b.prodkey - AND c.classkey = b.classkey - AND year = 2006 - AND month = 'JAN' - AND prod_name = 'Aroma Roma' -GROUP BY date -ORDER BY date; - - -SUM(SUM(dollars)) OVER(ORDER BY date ROWS UNBOUNDED PRECEDING) - -OVER = OLAP aggregation function - -MOVING Average = moyenne sur quelques jours pour faire une courbe de la moyenne (moins en dents de scie) - - -SELECT date, SUM(dollars) AS total_dollars, - SUM(SUM(dollars)) OVER(PARTITION BY week ORDER BY date - ROWS UNBOUNDED PRECEDING) AS run_dollars, - SUM(quantity) AS total_qty, - SUM(SUM(quantity)) OVER(PARTITION BY week ORDER BY date - ROWS UNBOUNDED PRECEDING) AS run_qty - FROM aroma.period a, aroma.sales b, aroma.product c - WHERE a.perkey = b.perkey - AND c.prodkey = b.prodkey - AND c.classkey = b.classkey - AND year = 2006 - AND month = 'JAN' - AND prod_name = 'Aroma Roma' -GROUP BY week, date -ORDER BY week, date; - -PARTITION BY week = Faire la somme mais par semaine - - -SELECT date, SUM(dollars) AS total_dollars, - SUM(SUM(dollars)) OVER (PARTITION BY week ORDER BY date - ROWS UNBOUNDED PRECEDING) AS run_dollars, - SUM(quantity) AS total_qty, - SUM(SUM(quantity)) OVER(PARTITION BY week ORDER BY date - ROWS UNBOUNDED PRECEDING) AS run_qty, week - FROM aroma.period a, aroma.sales b, aroma.product c - WHERE a.perkey = b.perkey - AND c.prodkey = b.prodkey - AND c.classkey = b.classkey - AND year = 2006 - AND month = 'JAN' - AND prod_name = 'Aroma Roma' -GROUP BY week, date -ORDER BY week, date; - - -SELECT prod_name, SUM(dollars) AS total_sales, SUM(quantity) AS total_qty, - DEC(sum(dollars)/sum(quantity), 7, 2) AS price - FROM aroma.product a, aroma.sales b, aroma.period c - WHERE a.prodkey = b.prodkey - AND a.classkey = b.classkey - AND c.perkey = b.perkey - AND year = 2004 -GROUP BY prod_name -ORDER BY price; - -dec(sum(dollars)/sum(quantity), 7, 2) AS price - - -SELECT t1.date, sales_cume_west, sales_cume_south, - sales_cume_west - sales_cume_south AS west_vs_south - FROM - (SELECT date, SUM(dollars) AS total_sales, - SUM(SUM(dollars)) OVER(ORDER BY date - ROWS UNBOUNDED PRECEDING) AS sales_cume_west - FROM aroma.market a, - aroma.store b, - aroma.sales c, - aroma.period d - WHERE a.mktkey = b.mktkey - AND b.storekey = c.storekey - AND d.perkey = c.perkey - AND year = 2006 - AND month = 'MAR' - AND region = 'West' - GROUP BY date) AS t1 - JOIN - (SELECT date, SUM(dollars) AS total_sales, - SUM(SUM(dollars)) OVER(ORDER BY date ROWS UNBOUNDED PRECEDING) AS sales_cume_south - FROM aroma.market a, - aroma.store b, - aroma.sales c, - aroma.period d - WHERE a.mktkey = b.mktkey - AND b.storekey = c.storekey - AND d.perkey = c.perkey - AND year = 2006 - AND month = 'MAR' - AND region = 'South' - GROUP BY date) AS t2 -ON t1.date = t2.date -ORDER BY date; - - - - -SELECT city, week, SUM(dollars) AS sales, - DEC(AVG(SUM(dollars)) OVER(partition by city - ORDER BY city, week ROWS 2 PRECEDING),7,2) AS mov_avg, - SUM(SUM(dollars)) OVER(PARTITION BY city - ORDER BY week ROWS unbounded PRECEDING) AS run_sales - FROM aroma.store a, - aroma.sales b, - aroma.period c - WHERE a.storekey = b.storekey - AND c.perkey = b.perkey - AND qtr = 'Q3_05' - AND city IN ('San Jose', 'Miami') -GROUP BY city, week; - - -ROWS n PRECEDING (ou on peut aussi dire : FOLLOWING ) - - - -SELECT date, SUM(quantity) AS day_qty, - DEC(SUM(SUM(quantity)) OVER(ORDER BY date - ROWS 6 PRECEDING),7,2) AS mov_sum - FROM aroma.sales a, aroma.period b, aroma.product c - WHERE b.perkey = a.perkey - AND c.classkey = a.classkey - AND c.prodkey = a.prodkey - AND year = 2006 - AND month = 'MAR' - AND prod_name = 'Demitasse Ms' -GROUP BY date -ORDER BY date; - -REPONSES : - -# Total du montant des ventes par catégorie - -select c.class_type, sum(s.dollars) as total -from aroma.class c, aroma.sales s, aroma.product p -where c.classkey = p.classkey -and p.prodkey = s.prodkey -and p.classkey = s.classkey -group by c.class_type -order by total desc - -# Pourcentage du montant des ventes de chaque catégorie - -select c.class_type, dec(100*sum(s.dollars)/(select sum(dollars) from aroma.sales),7,0) as part -from aroma.class c, aroma.sales s, aroma.product p -where c.classkey = p.classkey -and p.prodkey = s.prodkey -and p.classkey = s.classkey -group by c.class_type -order by part desc - -# Classement des ventes par classes de produit - -select c.class_type, dec(100*sum(s.dollars)/(select sum(dollars) from aroma.sales),7,0) as part, rank() over(order by sum(s.dollars) desc) as rang -from aroma.class c, aroma.sales s, aroma.product p -where c.classkey = p.classkey -and p.prodkey = s.prodkey -and p.classkey = s.classkey -group by c.class_type -order by part desc - -# Produit le plus vendu, pourcentage correspondant - -select p.prodkey, p.classkey, p.prod_name, p.pkg_type, dec(100*sum(s.dollars)/(select sum(dollars) from aroma.sales),7,0) as part -from aroma.sales s, aroma.product p -where p.prodkey = s.prodkey -and p.classkey = s.classkey -group by p.prodkey, p.classkey, p.prod_name, p.pkg_type -order by part desc² - -# Montant des ventes des produits par semaine - -select p.prodkey, p.classkey, p.prod_name, p.pkg_type, t.week, sum(s.dollars) as montant -from aroma.sales s, aroma.product p, aroma.period t -where p.prodkey = s.prodkey -and p.classkey = s.classkey -and s.perkey = t.perkey -group by p.prodkey, p.classkey, p.prod_name, p.pkg_type,t.week -order by t.week - -# Classement des produits par montant des ventes décroissant pour chaque semaine - -select p.prodkey, p.classkey, p.prod_name, p.pkg_type, t.week, sum(s.dollars) as montant, rank() over(partition by week order by week, sum(s.dollars) desc) as rang -from aroma.sales s, aroma.product p, aroma.period t -where p.prodkey = s.prodkey -and p.classkey = s.classkey -and s.perkey = t.perkey -group by p.prodkey, p.classkey, p.prod_name, p.pkg_type,t.week -order by t.week, rang - -# Classement moyen des produits en vente hebdomadaire - -select t.prodkey, t.classkey, t.prod_name, t.pkg_type, avg(rang) as rang_moyen -from (select p.prodkey, p.classkey, p.prod_name, p.pkg_type, t.week, sum(s.dollars) as montant, rank() over(partition by week order by week, sum(s.dollars) desc) as rang -from aroma.sales s, aroma.product p, aroma.period t -where p.prodkey = s.prodkey -and p.classkey = s.classkey -and s.perkey = t.perkey -group by p.prodkey, p.classkey, p.prod_name, p.pkg_type,t.week -order by t.week, rang) as t(prodkey,classkey,prod_name,pkg_type,week,montant,rang) -group by t.prodkey,t.classkey, t.prod_name, t.pkg_type - -# Montant moyen des ventes par jour de la semaine - -select ti.day, avg(ti.montant) as moyenne -from (select t.day,sum(dollars) - from aroma.sales s, aroma.period t - where s.perkey = t.perkey - group by t.perkey,t.day) as ti(day,montant) -group by ti.day -order by moyenne desc - - -MES REPONSES - -select c.class_type, SUM(s.dollars) as total - from aroma.class c, aroma.sales s, aroma.product p - where c.classkey = p.classkey - and p.classkey = s.classkey - and p.prodkey = s.prodkey - group by c.class_type - order by total desc - - -select c.class_type, dec(100*sum(s.dollars)/(select sum(dollars) from aroma.sales), 7,0) - from aroma.class c, aroma.product p, aroma.sales s - where c.classkey = p.classkey - and p.classkey = s.classkey - and p.prodkey = s.prodkey - group by c.class_type;