Projet Fantastic : Exploitation multi-dimensionnelle de données

Question

Effectuez une requête multi-niveaux permettant de calculer les ventes sur la hiérarchie date-mois-trimestre.

Solution

Requête
1
SELECT d.dat, d.tri, d.mon, count(*)
2
FROM f_dw_ventes v, f_dw_date d
3
WHERE v.dat=d.dat
4
GROUP BY ROLLUP (d.tri, d.mon, d.dat);
Résultat (extrait)
1
01-JAN-13   1   1     1338 
2
02-JAN-13   1   1     1340 
3
03-JAN-13   1   1     1427 
4
04-JAN-13   1   1     1325 
5
05-JAN-13   1   1     3683 
6
08-JAN-13   1   1     1262 
7
09-JAN-13   1   1     1394 
8
10-JAN-13   1   1     1507 
9
11-JAN-13   1   1     1368 
10
12-JAN-13   1   1     3513 
11
15-JAN-13   1   1     1316 
12
16-JAN-13   1   1     1322 
13
17-JAN-13   1   1     1605 
14
18-JAN-13   1   1     1247 
15
19-JAN-13   1   1     3751 
16
22-JAN-13   1   1     1418 
17
23-JAN-13   1   1     1409 
18
24-JAN-13   1   1     1346 
19
25-JAN-13   1   1     1492 
20
26-JAN-13   1   1     3361 
21
29-JAN-13   1   1     1371 
22
30-JAN-13   1   1     1322 
23
31-JAN-13   1   1     1360 
24
            1   1    40477 
25
01-FEB-13   1   2     1499 
26
02-FEB-13   1   2     3347 
27
05-FEB-13   1   2     1658 
28
06-FEB-13   1   2     1318 
29
07-FEB-13   1   2     1230 
30
08-FEB-13   1   2     1461 
31
09-FEB-13   1   2     3318 
32
12-FEB-13   1   2     1515 
33
13-FEB-13   1   2     1349 
34
14-FEB-13   1   2     1307 
35
15-FEB-13   1   2     1379 
36
16-FEB-13   1   2     3531 
37
19-FEB-13   1   2     1374 
38
20-FEB-13   1   2     1566 
39
21-FEB-13   1   2     1414 
40
22-FEB-13   1   2     1311 
41
23-FEB-13   1   2     3543 
42
26-FEB-13   1   2     1357 
43
27-FEB-13   1   2     1622 
44
28-FEB-13   1   2     1270 
45
            1   2    36369 
46
01-MAR-13   1   3     1300 
47
02-MAR-13   1   3     3455 
48
05-MAR-13   1   3     1240 
49
...
50
29-NOV-13   4  11     1372 
51
30-NOV-13   4  11     3489 
52
            4  11    41269 
53
03-DEC-13   4  12     2311 
54
04-DEC-13   4  12     2245 
55
05-DEC-13   4  12     2278 
56
06-DEC-13   4  12     2079 
57
07-DEC-13   4  12     5091 
58
10-DEC-13   4  12     2246 
59
11-DEC-13   4  12     2287 
60
12-DEC-13   4  12     2341 
61
13-DEC-13   4  12     2217 
62
14-DEC-13   4  12     5184 
63
17-DEC-13   4  12     2086 
64
18-DEC-13   4  12     2081 
65
19-DEC-13   4  12     2251 
66
20-DEC-13   4  12     2290 
67
21-DEC-13   4  12     5073 
68
24-DEC-13   4  12     4001 
69
25-DEC-13   4  12     2128 
70
26-DEC-13   4  12      844 
71
27-DEC-13   4  12      782 
72
28-DEC-13   4  12     2542 
73
31-DEC-13   4  12      887 
74
            4  12    53244 
75
            4       135106 
76
                    492113

Question

Étudiez l'éventuelle influence des magasins (certains sont-ils plus performants ?) et de l'implantation dans les départements (certains sont-ils plus propices ?).

Indice

Afin de ne pas être dépendant de l'organisation des magasins, effectuez la requête uniquement pour les magasins de type 'A' avec rayon BS (ce sont à la fois les magasins les plus nombreux et les plus performants).

Isolation de facteur

Solution

1
SELECT m.dpt, m.mag, count(*)
2
FROM f_dw_ventes v, f_dw_mag m
3
WHERE v.mag=m.mag AND m.ray = 'Author' AND m.bs = '1'
4
GROUP BY ROLLUP (m.dpt, m.mag);
1
13  M106              4680 
2
13  M3                4815 
3
13  M54               4634 
4
13  M68               4599 
5
13                   18728 
6
18  M50               4592 
7
18                    4592 
8
22  M2                4797 
9
22                    4797 
10
28  M144              4313 
11
28  M21               4933 
12
28  M92               4653 
13
28                   13899 
14
30  M29               4596 
15
...
16
92  M138              4573 
17
92  M80               4915 
18
92                   14247 
19
95  M148              4759 
20
95  M28               4771 
21
95  M34               4824 
22
95  M37               4867 
23
95  M40               4795 
24
95  M70               4707 
25
95  M81               4767 
26
95                   33490 
27
                    281153 

On observe que les magasins sont assez homogènes, et également les département si on les ramène au nombre de magasins qu'ils contiennent.

Question

Effectuer une requête multi-dimensionnelle permettant de regarder si les magasins avec un rayon best-sellers vendent plus de livres best-sellers ou non.

On peut utiliser un tableur pour finaliser les analyses de ratio sur les valeurs renvoyées par la requête CUBE obtenue.

Solution

1
SELECT b.bs || ';' || m.bs || ';' || count(*) || ';'
2
FROM f_dw_ventes v, f_dw_produit p, f_dw_bs b, f_dw_mag m
3
WHERE v.pro=p.isbn AND p.isbn=b.isbn AND v.mag=m.mag
4
GROUP BY CUBE (b.bs, m.bs);
Exemple de résultat CUBE analysé dans un tableur