Comment utiliser la fonction postgresql array_agg?

Comment utiliser la fonction postgresql array_agg?
La méthode d'agrégat 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 nuls. Il renvoie un tableau avec chaque valeur du groupe d'entrée en tant que partie. Pour trier les résultats définis via la fonction PostgreSQL Array_agg, vous utiliserez la phrase Order Order By. Vous pouvez également utiliser la clause où est nécessaire.

Pour comprendre la méthode agrégée array_agg (), vous devez effectuer plusieurs exemples. À cette fin, ouvrez le shell de ligne de commande PostgreSQL. Si vous souhaitez activer l'autre serveur, faites-le en fournissant son nom. Sinon, laissez l'espace vide et appuyez sur le bouton Entrer pour sauter dans 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., «Tester», comme indiqué dans l'image ci-dessous. Si vous souhaitez utiliser un autre port, écrivez-le, sinon laissez-le simplement tel quel et appuyez sur Entrez 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 des entrées réussies de toutes les informations requises, vous êtes prêt à partir.

Utilisation de Array_agg sur une seule colonne:

Considérez le tableau «personne» dans la base de données «Tester» ayant trois colonnes; «Id», «nom» et «âge». La colonne «ID» a les identifiants de toutes les personnes. Tandis que le champ «nom» contient les noms des personnes et la colonne «âge» l'âge de toutes les personnes.

>> sélectionner * parmi la personne;

Selon la table aérienne, nous devons appliquer la méthode Aggregate Array_agg pour renvoyer la liste du tableau de tous les noms de la table via la colonne «Nom». Avec cela, vous devez utiliser la fonction array_agg () dans la requête de sélection 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.

>> sélectionnez array_agg (nom) de la personne;

Utilisation de Array_agg sur plusieurs colonnes avec l'ordre par clause:

Exemple 01:

En appliquant la fonction Array_agg à plusieurs colonnes lors de l'utilisation de la clause Order By, considérez le même tableau «personne» dans la base de données «Tester» ayant trois colonnes; «Id», «nom» et «âge». Dans cet exemple, nous utiliserons la clause du groupe par.

>> sélectionner * parmi la personne;

Nous avons concaténé le résultat de la requête sélectionnée dans une liste de tableaux tout en utilisant les deux colonnes «nom» et «âge». Dans cet exemple, nous utilisons l'espace comme caractère spécial qui a été utilisé pour concaténer ces deux colonnes jusqu'à présent. D'un autre côté, 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 d'âge de nom dans l'image ci-dessous.

>> Sélectionnez ID, array_agg (nom || "|| âge) en tant que persondata à partir du groupe de personne par ordre d'ID par id;



Exemple 02:

Considérez un tableau nouvellement créé «employé» dans la base de données «test» ayant cinq colonnes; «Id», «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 l'espace tout en utilisant le groupe par et l'ordre par clause.

>> Sélectionner * parmi les employés;

Nous concatenons les données de deux colonnes, «Nom» et «Email» dans un tableau tout en utilisant '-' entre eux. Identique qu'avant, nous extraissons la colonne «ID» distinctement. Les résultats de la colonne concaténée seront présentés comme «EMP» au moment de l'exécution. L'ensemble des résultats sera d'abord assemblé par «l'identifiant» de la personne, et ensuite, il sera organisé par ordre croissant de la colonne «ID». Essayons une commande très similaire dans le shell avec des changements mineurs et voyons les conséquences. D'après le résultat ci-dessous, vous avez acquis un tableau distinct pour chaque valeur concaténée par nom de nom présenté dans l'image tandis que le signe '-' est utilisé dans toutes les valeurs.

>> Sélectionnez ID, array_agg (nom || '-' || e-mail) en tant que EMP de l'employé Group by ID Order by Id;

Utilisation de Array_agg sur plusieurs colonnes sans ordre par clause:

Vous pouvez également essayer la méthode Array_agg sur n'importe quelle table sans utiliser l'ordre par et le groupe par clause. Supposons un «acteur» de table nouvellement créé dans votre ancienne base de données «test» ayant trois colonnes; «Id», «fname» et «lname». Le tableau contient des données sur les prénoms et les noms de famille de l'acteur avec leurs identifiants.

>> sélectionner * chez l'acteur;

Donc, concaténer les deux colonnes «fname» et «lname» dans une liste de tableaux tout en utilisant l'espace entre eux, comme vous l'avez fait dans les deux derniers exemples. Nous n'avons pas retiré la colonne 'ID' distinctement Andee a utilisé la fonction Array_agg dans la requête sélectionnée. La colonne concaténée du tableau résultat sera présentée comme des «acteurs». Essayez la requête ci-dessous dans le shell de commande et apercevez le tableau résulté. Nous avons récupéré un seul tableau avec une valeur concaténée par nom présenté, séparée par une virgule du résultat.

Conclusion:

Enfin, vous avez presque fini d'exécuter la plupart des exemples requis pour comprendre la méthode d'agrégat Array_Agg. Essayez plus d'entre eux à votre fin pour une meilleure compréhension et connaissances.