Cas Fantastic : Agrégation de faits

Question

Calculer le nombre moyen de ventes pour un livre.

Solution

1
SELECT ROUND(AVG(ventes)) FROM
2
(
3
SELECT COUNT(*) AS ventes
4
FROM f_dw_ventes v, f_dw_produit p
5
WHERE p.isbn=v.pro
6
GROUP BY p.isbn
7
);

La moyenne est de 372 ventes par livre.

Question

Étudier l'évolution du nombre de ventes (par exemple avec un graphique) et observer une singularité dans l'évolution du nombre de ventes par livre.

Solution

1
SELECT p.isbn, COUNT(*) AS ventes
2
FROM f_dw_ventes v, f_dw_produit p
3
WHERE p.isbn=v.pro
4
GROUP BY p.isbn
Ventes par produit

On observe une augmentation importante entre 1000 et 1800.

Question

Créez une vue qui liste les livres selon qu'ils sont des best-sellers ou non (on ajoute un attribut booléen "bs"). Expliciter votre définition d'un best-seller.

Solution

On définit un best-seller comme un livre vendu à plus de 1800 exemplaires.

1
CREATE OR REPLACE VIEW f_dw_bs AS
2
SELECT
3
isbn,
4
titre,
5
CASE WHEN ventes>=1800 THEN 1 ELSE 0 END AS bs
6
FROM
7
(
8
SELECT isbn, titre, COUNT(*) AS ventes
9
FROM f_dw_ventes v, f_dw_produit p
10
WHERE p.isbn=v.pro
11
GROUP BY p.isbn, p.titre, 
12
);