Comment utiliser le module de tableau croisé PostrgreSQL

Comment Utiliser Le Module De Tableau Croise Postrgresql



Lorsque vous exécutez une instruction SELECT pour récupérer les enregistrements d'une table PostgreSQL, les données sont renvoyées sous forme de tableau. La forme tabulaire n’est pas toujours la meilleure pour lire les données, surtout lorsque vous souhaitez comparer les valeurs. Une meilleure approche consiste à renvoyer les enregistrements sous forme de tableau croisé. Pour cela, PostgreSQL propose le tablefunc pour permettre aux utilisateurs d'utiliser la fonction de tableau croisé pour représenter les données cibles sous forme de tableau croisé dynamique. Cet article explique plus en détail comment utiliser la fonction de tableau croisé PostgreSQL. Continuer à lire!

Travailler avec le module PostgreSQL Crosstab

Avoir un espace pour spécifier comment vous souhaitez que vos données soient représentées est pratique. Avec PostgreSQL, bien que la méthode par défaut consiste à avoir les données sous forme de tableau, le module de tableau croisé vous offre une autre option. Vous pouvez créer les tableaux croisés dynamiques en utilisant les colonnes « select » d'un tableau PostgreSQL pour une meilleure présentation.

Cette fonctionnalité étonnante est une extension pour PostgreSQL version 8.3. L'extension « tablefunc » offre la fonction de tableau croisé, permettant d'avoir les tableaux croisés dynamiques comme ensemble de résultats. Donnons un exemple.







Tout d’abord, nous créons le tableau « résultats » avec trois colonnes à l’aide de la commande suivante :





La table créée est vide. Alors, continuez et utilisez la requête INSERT pour y ajouter les valeurs. Dans ce cas, nous insérons quelques entrées comme indiqué ci-dessous :





Si nous exécutons l'instruction « select », nous obtenons les résultats suivants. Notez comment cette méthode par défaut de récupération des enregistrements les présente sous forme de tableau. Les colonnes sont utilisées comme en-têtes et leurs valeurs respectives apparaissent dans les lignes :



Bien que l’approche précédente fonctionne dans la plupart des cas, il existe une autre option pour récupérer les mêmes enregistrements. Pour ce cas, nous souhaitons créer un tableau croisé dynamique. Par conséquent, nous utilisons l'extension « tablefunc » fournie avec PostgreSQL version 8.3+.


Créons donc une extension « tablefunc » pour l'activer lorsque nous l'appelons dans la requête. Exécutez la commande suivante :

CRÉER UNE EXTENSION SI N'EXISTE PAS tablefunc ;

Vous saurez que l'extension a été activée avec succès une fois que vous aurez obtenu une sortie comme celle que nous avons dans l'image précédente.

Pour notre fonction de tableau croisé, faisons en sorte que la première colonne soit la faculté. En dessous se trouvent les différentes facultés que nous avons dans notre tableau. À côté de la colonne faculté, nous avons d'autres colonnes qui représentent les différentes valeurs de la colonne catégorie de notre tableau. Enfin, pour chaque catégorie, nous disposons du nombre d'élèves ayant atteint les différentes catégories.

Pour réaliser un tel tableau croisé dynamique, utilisez la syntaxe suivante :

SÉLECTIONNER * DEPUIS LE TRAVAIL CROISÉ ( 'SELECT colonne1 , colonne2 , colonne3 FROM nom_table ORDER BY critèresa' )

AS nouveau_nom ( colonne1 type_données , colonne2 type_données , colonne_n type_données ) ;

En utilisant l'exemple de table que nous avons créé, notre commande ressemble à ceci :

Avant de voir les résultats, expliquons comment fonctionne la commande du module crosstab. Tout d'abord, l'instruction SELECT renvoie trois colonnes. La première colonne est traitée comme l'identifiant de la ligne. Dans notre cas, il s’agit de la colonne « faculté ». La deuxième colonne, qui est la colonne « catégorie », représente les catégories du tableau croisé dynamique. Enfin, la troisième colonne contient les valeurs des catégories. Dans notre cas, il s'agit du nombre d'étudiants dans chaque catégorie.

Ayant cela compris, une fois que nous appuyons sur la touche « Entrée », nous obtenons le tableau croisé dynamique comme suit :

Sur la base du tableau croisé dynamique renvoyé, nous pouvons voir qu'il fonctionne comme un tableau 2D où la première colonne de l'instruction SELECT est le premier tableau et la deuxième colonne est le deuxième tableau de la dimension. La troisième colonne contient les valeurs des deuxièmes éléments du tableau.

Conclusion

Le tableau croisé PostgreSQL est idéal pour représenter les valeurs du tableau sous forme de tableau croisé dynamique. Vous devez renvoyer trois colonnes dans votre instruction SELECT pour utiliser le module de tableau croisé, et cet article a partagé un exemple pratique sur la façon de l'utiliser. En outre, nous avons expliqué comment fonctionne le module de tableau croisé pour créer le tableau croisé dynamique qui utilise la même logique qu'un tableau 2D.