TP 2 - Dates et agrégats

Exercice 1 : Agrégats

Questions

1. Compter le nombre total de commandes

Affichez le nombre de commandes passées.

2. Calculer le montant total de toutes les commandes avec remise appliquée

Calculez le chiffre d'affaires total en tenant compte des remises.

3. Afficher le nombre de clients par pays

Affichez le pays et le nombre de clients pour chaque pays, trié par nombre décroissant.

4. Calculer le prix moyen des produits par catégorie

Affichez le nom de la catégorie et le prix moyen des produits.

5. Trouver les catégories dont le prix moyen est supérieur à 100

Utilisez une clause de filtrage après agrégation.

6. Afficher pour chaque employé le nombre de commandes qu'il a gérées

Affichez le nom, prénom et le nombre de commandes traitées.

7. Calculer le nombre minimum et maximum d'unités commandées dans une seule ligne de commande

Trouvez les quantités extrêmes dans la table DetailCommande.

8. Afficher les produits avec leur quantité totale vendue, en excluant les ventes inférieures à 10 unités

Filtrez les produits peu vendus.

Rappel de cours

Fonctions d'agrégation

Ces fonctions permettent d'effectuer des calculs sur un ensemble de lignes.

-- Compter le nombre de lignes
SELECT COUNT(*) FROM Client;
-- Calculer la somme
SELECT SUM(PrixUnit) FROM Produit;
-- Calculer la moyenne
SELECT AVG(PrixUnit) FROM Produit;
-- Trouver le minimum et le maximum
SELECT MIN(PrixUnit), MAX(PrixUnit) FROM Produit;

Regroupement (GROUP BY)

Permet de grouper les résultats selon une ou plusieurs colonnes.

-- Compter le nombre de produits par fournisseur
SELECT NoFour, COUNT(*) 
FROM Produit 
GROUP BY NoFour;

Filtrage sur les groupes (HAVING)

HAVING s'utilise après GROUP BY pour filtrer les résultats agrégés.

-- Fournisseurs ayant plus de 5 produits
SELECT NoFour, COUNT(*) 
FROM Produit 
GROUP BY NoFour 
HAVING COUNT(*) > 5;

Le diagramme s'affichera ici une fois la base chargée

Structure des tables

Les détails des tables s'afficheront ici une fois la base chargée

Les résultats s'afficheront ici après exécution d'une requête
Aucune requête exécutée