PostgreSQL

Comment utiliser la fonction PostgreSQL ARRAY_AGG?

Comment utiliser la fonction PostgreSQL ARRAY_AGG?
La méthode d'agrégation ARRAY_AGG() est l'une des méthodes utilisées dans PostgreSQL, qui prend plusieurs valeurs d'entrée et les concatène dans un tableau, y compris les valeurs NULL. Il renvoie un tableau avec chaque valeur du groupe d'entrée en tant que partie. Pour trier le jeu de résultats via la fonction PostgreSQL ARRAY_AGG, vous utiliserez la phrase ORDER BY. Vous pouvez également utiliser la clause WHERE si nécessaire.

Pour comprendre la méthode agrégée ARRAY_Agg(), vous devez effectuer plusieurs exemples. Pour cela, ouvrez le shell de ligne de commande PostgreSQL. Si vous souhaitez allumer l'autre serveur, faites-le en fournissant son nom. Sinon, laissez l'espace vide et appuyez sur le bouton Entrée pour sauter sur la base de données. Si vous souhaitez utiliser la base de données par défaut, e.g., Postgres, puis laissez-le tel quel et appuyez sur Entrée ; sinon, écrivez le nom d'une base de données, e.g., « test », comme le montre l'image ci-dessous. Si vous souhaitez utiliser un autre port, écrivez-le, sinon laissez-le tel quel et appuyez sur Entrée pour continuer. Il vous demandera d'ajouter le nom d'utilisateur si vous souhaitez passer à un autre nom d'utilisateur. Ajoutez le nom d'utilisateur si vous le souhaitez, sinon, appuyez simplement sur "Entrée". En fin de compte, vous devez fournir votre mot de passe utilisateur actuel, pour commencer à utiliser la ligne de commande en utilisant cet utilisateur particulier comme ci-dessous. Après avoir entré avec succès toutes les informations requises, vous êtes prêt à partir.

Utilisation de ARRAY_AGG sur une seule colonne :

Considérons la table « personne » dans la base de données « test » comportant trois colonnes ; « identifiant », « nom » et « âge ». La colonne « id » contient les identifiants de toutes les personnes. Alors que le champ 'nom' contient les noms des personnes et la colonne 'âge' les âges de toutes les personnes.

>> SÉLECTIONNER * DE LA personne ;

En fonction de la table des frais généraux, nous devons appliquer la méthode agrégée ARRAY_AGG pour renvoyer la liste des tableaux de tous les noms de la table via la colonne « nom ». Avec cela, vous devez utiliser la fonction ARRAY_AGG() dans la requête SELECT pour récupérer le résultat sous la forme d'un tableau. Essayez la requête indiquée dans votre shell de commande et obtenez le résultat. Comme vous pouvez le voir, nous avons la colonne de sortie ci-dessous "array_agg" ayant des noms répertoriés dans un tableau pour la même requête.

>> SELECT ARRAY_AGG(nom) FROM personne ;

Utilisation de ARRAY_AGG sur plusieurs colonnes avec la clause ORDER BY :

Exemple 01 :

En appliquant la fonction ARRAY_AGG à plusieurs colonnes tout en utilisant la clause ORDER BY, considérons la même table « personne » dans la base de données « test » ayant trois colonnes ; « identifiant », « nom » et « âge ». Dans cet exemple, nous utiliserons la clause GROUP BY.

>> SÉLECTIONNER * DE LA personne ;

Nous avons concaténé le résultat de la requête SELECT dans une liste de tableaux en utilisant les deux colonnes "name" et "age". Dans cet exemple, nous avons utilisé l'espace comme caractère spécial qui a été utilisé jusqu'à présent pour concaténer ces deux colonnes. D'autre part, nous avons récupéré la colonne "id" séparément. Le résultat du tableau concaténé sera affiché dans une colonne "persondata" au moment de l'exécution. L'ensemble de résultats sera d'abord regroupé par « id » de la personne et trié par ordre croissant de champ « id ». Essayons la commande ci-dessous dans le shell et voyons les résultats vous-même. Vous pouvez voir que nous avons un tableau séparé pour chaque valeur concaténée name-age dans l'image ci-dessous.

>> SELECT id, ARRAY_AGG (nom ||"|| âge) en tant que données personnelles FROM personne GROUP BY id ORDER BY id ;



Exemple 02 :

Considérons une table « Employe » nouvellement créée dans la base de données « test » comportant cinq colonnes ; « identifiant », « nom », « salaire », « âge » et « e-mail ». La table stocke toutes les données sur les 5 employés travaillant dans une entreprise. Dans cet exemple, nous utiliserons le caractère spécial '-' pour concaténer deux champs au lieu d'utiliser un espace tout en utilisant les clauses GROUP BY et ORDER BY.

>> SÉLECTIONNER * DE L'employé ;

Nous concaténons les données de deux colonnes, "name" et "email" dans un tableau en utilisant '-' entre elles. Comme précédemment, on extrait distinctement la colonne « id ». Les résultats de la colonne concaténée seront affichés sous la forme « em » au moment de l'exécution. L'ensemble de résultats sera d'abord assemblé par « id » de la personne, et par la suite, il sera organisé par ordre croissant de colonne « id ». Essayons une commande très similaire dans le shell avec des modifications mineures et voyons les conséquences. À partir du résultat ci-dessous, vous avez acquis un tableau distinct pour chaque valeur concaténée nom-email présentée dans l'image tandis que le signe '-' est utilisé dans chaque valeur.

>> SELECT id, ARRAY_AGG (nom || '-' || email) AS emp FROM Employee GROUP BY id ORDER BY id;

Utilisation de ARRAY_AGG sur plusieurs colonnes sans clause ORDER BY :

Vous pouvez également essayer la méthode ARRAY_AGG sur n'importe quelle table sans utiliser les clauses ORDER BY et GROUP BY. Supposons qu'une table « acteur » nouvellement créée dans votre ancienne base de données « test » ait trois colonnes ; "id", "fname" et "lname". Le tableau contient des données sur les prénoms et les noms de l'acteur ainsi que leurs identifiants.

>> SELECT * FROM acteur;

Donc, concaténez les deux colonnes "fname" et "lname" dans une liste de tableaux tout en utilisant un espace entre elles, comme vous l'avez fait dans les deux derniers exemples. Nous n'avons pas retiré la colonne 'id' distinctement et nous avons utilisé la fonction ARRAY_AGG dans la requête SELECT. La colonne concaténée du tableau résultant sera présentée comme « acteurs ». Essayez la requête ci-dessous dans le shell de commande et ayez un aperçu du tableau résultant. Nous avons récupéré un seul tableau avec une valeur concaténée nom-email présentée, séparée par une virgule du résultat.

Conclusion:

Enfin, vous avez presque terminé d'exécuter la plupart des exemples nécessaires à la compréhension de la méthode d'agrégation ARRAY_AGG. Essayez-en plus de votre côté pour une meilleure compréhension et connaissance.

Comment utiliser le moteur de triche GameConqueror sous Linux
L'article couvre un guide sur l'utilisation du moteur de triche GameConqueror sous Linux. De nombreux utilisateurs qui jouent à des jeux sur Windows u...
Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...