Aller au contenu principal

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).