Cours SQL et MySQL · Module 6: Agrégations et regroupements

La Salle des Nombres - résumé

2 min de lecture
Dans cette leçon4

Magnifique ! Tu as traversé la Salle des Nombres et appris à regarder les données comme un véritable intendant de la Bibliothèque - à vol d'oiseau. Voici ton parchemin de connaissances :

Ce que tu as appris

  • Les fonctions d'agrégat retournent une seule valeur à partir de plusieurs lignes : COUNT, SUM, AVG, MIN, MAX.
  • COUNT(*) compte toutes les lignes, COUNT(colonne) ignore les valeurs NULL, et COUNT(DISTINCT colonne) ne compte que les valeurs distinctes.
  • GROUP BY divise les lignes en groupes et calcule un agrégat pour chaque groupe séparément.
  • HAVING filtre les groupes selon un résultat d'agrégat (par ex. HAVING COUNT(*) > 3).
  • WHERE filtre les lignes avant le regroupement, tandis que HAVING filtre les groupes après l'agrégation.

Ordre des clauses - à retenir pour toujours

Les clauses doivent toujours apparaître dans cet ordre :

1SELECT   column, COUNT(*)
2FROM     table
3WHERE    row_condition
4GROUP BY column
5HAVING   aggregate_condition
6ORDER BY COUNT(*) DESC;

Un exemple qui combine tout

1SELECT kategoria_id, COUNT(*), AVG(cena)
2FROM ksiazki
3WHERE dostepna = 1
4GROUP BY kategoria_id
5HAVING COUNT(*) > 5
6ORDER BY AVG(cena) DESC;

« Pour les livres disponibles, montre les catégories ayant plus de 5 titres, donne leur nombre et leur prix moyen, et trie le résultat du plus cher au moins cher. »

Et ensuite ?

Dans le prochain lieu, tu apprendras à relier les rayons - tu feras la connaissance des JOINs, qui te permettent de combiner les livres avec leurs auteurs et catégories en un seul catalogue cohérent. Le boulier est rangé - place aux ponts entre les tables !

Tu as repéré une erreur dans cette leçon ?