PaliSkill
SQL avancé

Leçon 8 / 9 — Chapitre 7: CTE récursive et structures avancées

ARRAY_AGG et UNNEST

ARRAY_AGG est une fonction d'agrégation, comme STRING_AGG (vu au chapitre 1) — mais elle produit un tableau plutôt qu'une chaîne de texte assemblée.

SELECT statut, ARRAY_AGG(nom ORDER BY id) AS noms
FROM clients
GROUP BY statut;

Pour le groupe inactif (clients 3 et 6) : ARRAY_AGG renvoie {Nina, Sophie}, un tableau à 2 éléments — là où STRING_AGG aurait renvoyé le texte 'Nina, Sophie'.

UNNEST fait l'opération inverse : elle éclate un tableau en plusieurs lignes, une par élément.

SELECT UNNEST(ARRAY['a', 'b', 'c']) AS valeur;

→ 3 lignes : 'a', 'b', 'c'.

À retenir :

  • ARRAY_AGG(colonne) agrège plusieurs lignes en un seul tableau, exactement comme STRING_AGG agrège en une seule chaîne de texte.
  • UNNEST(tableau) fait l'inverse : elle transforme un tableau en plusieurs lignes, une par élément.
  • ARRAY_AGG puis UNNEST sur son résultat redonnent (dans un ordre non garanti sans ORDER BY explicite) l'ensemble de lignes de départ.

À vous de jouer : combien de lignes retourne SELECT UNNEST(ARRAY[10, 20, 30]); ?

🔒

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