Cours SQL et MySQL · Module 6: Agrégations et regroupements
La Salle des Nombres - résumé
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 ?