PaliSkill
SQL avancé

Leçon 3 / 9 — Chapitre 9: Mise en pratique : e-commerce

STRING_AGG : commentaires par article

Comme au chapitre 1, STRING_AGG assemble les commentaires d'un même article en une seule chaîne — en excluant d'abord les avis sans commentaire.

SELECT article_id, STRING_AGG(commentaire, ' | ' ORDER BY id) AS commentaires
FROM avis
WHERE commentaire IS NOT NULL
GROUP BY article_id;

WHERE commentaire IS NOT NULL élimine d'abord les avis 3 et 6 (sans commentaire), avant tout regroupement. Pour l'article 2 (Lampe bureau), seul l'avis 8 reste ('Ne fonctionne pas') ; l'avis 3, sans commentaire, ne compte pas. Pour l'article 4 (Clavier), le seul avis (6) est sans commentaire : cet article n'apparaît même pas dans le résultat, faute de la moindre ligne restante après le WHERE.

À retenir :

  • Filtrer les valeurs NULL avant GROUP BY (plutôt que de les laisser dans le groupe) évite un résultat NULL ou incomplet pour STRING_AGG.
  • Un groupe dont toutes les lignes sont éliminées par le WHERE n'apparaît pas du tout dans le résultat final — ni avec une valeur vide, ni avec NULL.

À vous de jouer : l'article 4 (Clavier) apparaît-il dans ce résultat ? Justifiez à partir de son seul avis.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 80 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès