66 lines
2.9 KiB
Markdown
66 lines
2.9 KiB
Markdown
# 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
|