Exercice 1
La base de données market contient des anomalies, trouvez les.
Doublons d'identité — même nom, prénom et date de naissance
select nom, prenom, naissance, COUNT(*)
FROM market.adherent
GROUP BY nom, prenom, naissance
HAVING COUNT(*) > 1;
Agrégation
- Compter le nombre d'adhérents. voir](aggregation#compter)
- Compter le nombre d'articles de la famille 02CHOU. voir](aggregation#compter)
- Afficher le nombre de codes postaux différents trouvés dans la table adhérent. voir](aggregation#distinct)
- Calculer le chiffre d'affaire global voir](aggregation#somme)
- Calculer le montant de chaque ticket
- Afficher l'article le plus cher (avec son prix). voir](aggregation#maximum)
Jointures
- Lister les articles dont la famille n'existe pas voir](Jointure#jointure-dexclusion).
- Lister les articles dont la famille est absente. voir](Jointure#jointure-dexclusion).
Vues
- Créer une vue ticket_complet qui agrège les informations du ticket et le calcul du montant total de ce ticket
- Créer une vue qui donne le chiffre d'affaires de chaque mois
create or replace view ca_mensuel as
select date_trunc('month', date_ticket) as mois,
sum(montant) as total
from ticket_completz tc
group by mois --date_trunc('month', date_ticket)
Sous requêtes
- Sélectionner les articles dont le prix est supérieur à la moyenne générale des prix des articles. voir](sousrequete#sous-requête-scalaire).
- Sélectionner les articles dont le prix est supérieur à la moyenne des prix des articles de la même famille. voir](sousrequete#sous-requête-scalaire).
- Afficher pour chaque adhérent la date et le montant de son dernier ticket. voir](sousrequete#laterals).