# Exercices ## Schéma Clients : id_client, nom, ville Familles : id_famille, nom_famille Produits : id_produit, nom_produit, prix_unitaire, id_famille Tickets : id_ticket, date_vente, id_client LignesTicket : id_ligne, id_ticket, id_produit, quantite, prix_unitaire ## Environnement ### Construire l'image ```shell docker build -t iut/pgsql:2025-08 . ``` ## Serie 1 - 1 : Quel est le nombre total de tickets enregistrés dans la base ? - 2 : Calculer le chiffre d’affaires global. - 3 : Pour chaque client, afficher son nom et le nombre de tickets qu’il a effectués. - 4 : Calculer le montant moyen d’un ticket (total ventes ÷ nombre de tickets). - 5 : Afficher le produit le plus cher et le produit le moins cher (avec leur prix). - 6 : Pour chaque famille de produits, afficher le nom de la famille et le nombre de produits associés. - 7 : Afficher, pour chaque mois, le chiffre d’affaires réalisé. - 8 : Trouver le client qui a dépensé le plus en montant total. - 9 : Afficher le produit ayant généré le plus de ventes en quantité totale vendue. - 10 : Pour chaque famille, afficher le montant total des ventes. ## Série 2 - 1 : Lister tous les tickets avec le nom du client. Afficher uniquement les tickets qui ont un client existant. - 2 : Lister tous les clients et le nombre de tickets associés, même les clients qui n’ont pas encore de ticket doivent apparaître (avec 0). - 3 : Lister tous les tickets, avec le nom du client s’il existe. Si un ticket a perdu sa référence client (valeur orpheline), il doit tout de même apparaître. - 4 : Lister tous les clients et tous les tickets, même si la correspondance n’existe pas. Union des clients sans tickets et des tickets sans clients. - 5 : Lister uniquement les clients qui ont acheté au moins un produit. - 6 : Lister les clients qui n’ont jamais acheté de produit. - 7 : Lister les produits avec leur famille, même si certains produits n’ont pas de famille renseignée. - 8 : Lister tous les couples de clients qui habitent dans la même ville. - 9 : Lister toutes les combinaisons possibles de familles et de clients (sans condition de jointure). - 10 : Lister les tickets contenant au moins un produit de la famille "Boissons". Exercice — CROSS JOIN Lister toutes les combinaisons possibles Client × Famille (même si elles n’existent pas en vrai). Exercice 7 — Agrégation + JOIN Pour chaque famille de produits, calculer le montant total des ventes. Exercice 8 — SELF JOIN Lister les couples de clients qui ont acheté au moins un produit en commun. Exercice 9 — Jointure imbriquée Lister les clients qui ont acheté des produits d’une famille donnée (ex: "Boissons"). Exercice 10 — Différence d’ensembles Lister les clients qui n’ont jamais acheté de produit d’une famille donnée. Exercice 11 — Différence d’ensembles (ANTI-JOIN) — clients n’ayant jamais acheté cette famille