Exercice 59 / 60

Écart à la moyenne du groupe (fonction fenêtre)

Sur la table ventes, affiche pour chaque vente son écart au montant moyen de sa catégorie (colonne ecart_moyenne_cat, arrondie à 2 décimales), grâce à une fonction fenêtre par catégorie. Colonnes : produit, categorie, montant, ecart_moyenne_cat. Trie par categorie, puis montant décroissant.

Une fonction fenêtre avec over (partition BY x) calcule une valeur par groupe sans fusionner les lignes : chaque ligne garde son détail ET voit l'agrégat de son groupe.

Syntaxe

AVG(col) OVER (PARTITION BY groupe)

Difference avec group BY : group BY réduit a une ligne par groupe ; over conserve toutes les lignes.

GROUP BY réduit à une ligne par groupe, OVER garde toutes les lignes et pose à côté de chacune l'agrégat de son groupe

Exemple (table produits) :

SELECT nom, categorie, prix, prix - AVG(prix) OVER (PARTITION BY categorie) AS ecart FROM produits; -> chaque produit avec son ecart au prix moyen de sa categorie
ventes
idproduitmontantdate_ventecategorieclient_id
query.sql

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →