SQL - Comment utiliser ARRAY_AGG() ?

SQL - Comment utiliser ARRAY_AGG() ?

Date de sortie
20/08/2024
Auteur
U
Untitled
“Comment je peux créer un ARRAY avec des champs classiques en groupant mes données ?

Il peut parfois être intéressant de regrouper les valeurs d’une colonne à une nouvelle granularité.

Pour se faciliter la tâche, il y a une fonction qui peut nous aider à réaliser cela : ARRAY_AGG().

Syntaxe

SELECT
	granularitéPrincipale,
	ARRAY_AGG(colonneARegrouper) AS nomDeLaColonneRegroupée
FROM lesDonnées
GROUP BY granularitéPrincipale;

Je ne l’ai pas précisé au début mais ARRAY_AGG() est une fonction d’agrégation et nécessite donc de préciser son niveau d’agrégation dans un GROUP BY.

Un exemple pour y voir plus clair

Je vous propose un exemple pour que l’utilisation de l’ARRAY_AGG() vous semble plus intuitif.

Ici nous avons des données avec pour chaque enregistrement l’achat d’un client à une date.

Ce que l’on souhaite obtenir dans l’exemple, est une sortie avec la liste des achats regroupée dans un ARRAY pour chaque client.

Le résultat

Ligne
customer_id
products_purchased
1
C001
Laptop
Mouse
2
C002
Smartphone
Charger
3
C003
Tablet

Nous obtenons donc une ligne par client et un tableau (ARRAY) de ses achats !

Merci de votre lecture !