Files
sql/exercices.md
2025-08-28 07:13:19 +02:00

66 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 daffaires global.
- 3 : Pour chaque client, afficher son nom et le nombre de tickets quil a effectués.
- 4 : Calculer le montant moyen dun 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 daffaires 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 nont pas encore de ticket doivent apparaître (avec 0).
- 3 : Lister tous les tickets, avec le nom du client sil 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 nexiste 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 nont jamais acheté de produit.
- 7 : Lister les produits avec leur famille, même si certains produits nont 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 nexistent 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 dune famille donnée (ex: "Boissons").
Exercice 10 — Différence densembles
Lister les clients qui nont jamais acheté de produit dune famille donnée.
Exercice 11 — Différence densembles (ANTI-JOIN) — clients nayant jamais acheté cette famille