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
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
);