Comment trouver la longueur du tableau dans PostgreSQL?

Comment trouver la longueur du tableau dans PostgreSQL?
PostgreSQL a ajouté la fonction de "array_length" dans le 8.4 version. Le "array_length" renvoie la longueur d'une dimension de tableau. Les tableaux sont très utiles pour l'agrégation et le stockage des données pour la plus petite liste. PostgreSQL vous permet de créer des tableaux de tout type de données, y compris le type intégré, un type défini par l'utilisateur et des tableaux multidimensionnels, mais PostgreSQL ne permet pas à un tableau de domaines d'être pris en charge.

Il existe également d'autres types de données si vous créez un tableau à l'aide de pgadmin. Dans cet article, vous apprendrez comment vous pouvez trouver une durée de tableau dans PostgreSQL dans Windows 10 à l'aide de quelques exemples.

Syntaxe

La syntaxe pour trouver une longueur de tableau est:

# array_length (colonnel_name, int)

Dans la syntaxe ci-dessus, le «array_length» renvoie la longueur de votre «colonnel_name» souhaité qui est écrit en premier lieu. Le «Int» en deuxième place mentionne quelle dimension du tableau est mesurée.

Array_length dans postgresql

Pour trouver une longueur de tableau, vous devez créer un tableau dans PostgreSQL soit en utilisant l'outil PGADMIN ou SQL Shell. J'ai créé un tableau nommé «Épicerie» comprenant trois colonnes. La syntaxe pour créer une table est:

# Créer des épiceries de table ("id" entier et non nulle, le caractère "personne" variant (100), "éléments" Caractère variant [255], clé primaire ("id"));

Dans la requête ci-dessus, comme son nom l'indique, «Create Table» crée la table avec le nom de «Épicerie» qui est composée de trois colonnes différentes appelées «ID», «personne» et «éléments». Avec chaque nom de colonne, leurs types de données sont déclarés, les «éléments» sont déclarés comme un type de tableau à l'aide de [], ce qui indique que nous voulons le type de données comme un tableau. Ici «ID» est indiqué comme la clé principale d'un tableau. Après avoir créé le tableau «épicerie», les données de chaque colonne sont insérées en fonction de leurs types de données respectives. La table «Épicerie» ressemble maintenant à ceci

Dans la colonne «ID», chaque personne se voit attribuer un numéro et un nom dans la colonne «Person». Dans la colonne «Articles», ces articles sont mentionnés que chaque personne a acheté. Tous les éléments sont unidimensionnels, sauf celui où id = 7, est exprimé comme un tableau multidimensionnel.

Maintenant que la table est créée, exécutons quelques exemples pour trouver la longueur d'un tableau dans la table «Épicerie».

# Sélectionnez "ID", "Person", "Items", Array_Length ("Items", 1) De "Groceries";

Dans la requête ci-dessus, l'instruction «SELECT» est de sélectionner toutes les colonnes mentionnées, notamment «ID», «Personne», «Articles». La fonction «Array_length» qui prend deux «éléments» et «1» de deux paramètres signifie qu'il veut mesurer la longueur de la colonne «Items» et «1» décrit la dimension que le tableau est mesuré. La requête ci-dessus montre la sortie suivante:

La sortie ci-dessus montre la longueur du tableau de chaque article qu'une personne a achetée. Comme nous pouvons le voir que les données ne sont pas dans un ordre particulier, la longueur de 3 éléments s'affiche en premier et 1 élément s'affiche à la fin, car l'instruction SELECT renvoie la colonne de manière non triée.

Array_length en utilisant l'ordre par postgresql

Dans l'exemple précédent, nous avons vu la durée d'un tableau dans le résultat n'a pas été triée. Nous pouvons trier la colonne facilement en utilisant la clause «Order by» soit dans l'ordre descendant ou ascendant en exécutant la requête suivante:

# Sélectionnez "ID", "Person", "Items", Array_Length ("Items", 1) Depuis "Groceries" Order by Array_Length ("Items", 1) DESC;

Dans la requête ci-dessus, la clause «Order by» a trié les lignes dans l'ordre descendant comme affiché dans la sortie ci-dessous:

On peut voir clairement que la clause «Order by» a trié la colonne «Article» dans l'ordre décroissant comme nous l'avons mentionné dans la requête. De même, nous pouvons également trier la longueur de la colonne «éléments» dans l'ordre croissant, mais cette fois, j'utiliserai un alias pour la colonne «Array_Length» afin que je n'aie pas à le répéter avec la clause «Order by». La requête pour trier la colonne par ordre croissant est:

# Sélectionnez "ID", "Person", "Items", Array_Length ("Items", 1) Len_ascences de "Groceries" Ordre par Len_ascendant ASC;

Dans la requête ci-dessus, j'ai déclaré l'alias comme «LEN_ACENCE» et la colonne est triée par ordre croissant qui donne la sortie ci-dessous:

Dans la sortie ci-dessus, l'alias utilisé peut être vu et la colonne est triée par ordre croissant en utilisant la clause «Order by» et la fonction «ASC» dans la requête.

Retour maximum array_length dans PostgreSQL

Si vous ne voulez que la longueur maximale d'un tableau dans une colonne, vous pouvez limiter le résultat en utilisant la clause «limite» dans votre requête avec la clause «Order by». La clause «limite» ne renverra que le nombre de lignes que vous avez mentionnées. La requête pour retourner uniquement la longueur maximale du tableau dans PostgreSQL est:

# Sélectionnez "ID", "Person", "Items", Array_Length ("Items", 1) Depuis "Groceries" Order by Array_Length ("Items", 1) DESC LIMIT 1;

Dans cette requête, la clause «Order By» et «Limit» renvoie la longueur maximale du tableau dans la colonne «Items». La clause «Order by» et la fonction «DESC» renvoie la valeur la plus élevée de la colonne «Items» et la clause «limite» ne renvoie que la ligne 1 comme mentionné dans une requête, et le résultat est affiché comme:

La personne qui a acheté le nombre maximum d'articles est «Catherine» avec une longueur de tableau de 6.

Vous pouvez également trouver la personne avec les éléments d'épicerie minimum en utilisant la fonction «ASC» au lieu de la fonction «DESC» et peut également limiter les lignes à plus de 1.

Array_length en utilisant la clause

Si vous souhaitez trouver la durée du tableau d'un élément de personne en particulier, la clause «où» vous aidera à trouver cet enregistrement. La clause «où» filtre les lignes en fonction de la condition que vous avez définie. Vous trouverez ci-dessous la requête pour «array_length» en utilisant la clause «où»:

# Sélectionnez "ID", "Person", "Items", Array_Length ("Items", 1) De "Groceries" où "Person" = 'Barry';

Dans la requête ci-dessus, j'ai spécifié la condition qui trouve la longueur du tableau de la table «Épicerie» où le nom de la personne est Barry, qui donne le résultat suivant:

La sortie montre que Barry a acheté deux éléments qui sont apparus dans la dernière colonne "Array_length".

Conclusion

Nous avons discuté de la façon dont nous pouvons trouver la durée d'un tableau de PostgreSQL en utilisant différents exemples. PostgreSQL le rend moins compliqué pour utiliser des tableaux dans une requête et trouver la longueur d'une colonne en utilisant uniquement la syntaxe simple array_length (chronn_name, int).

Le "array_length" dans cette syntaxe renvoie la longueur d'un tableau du premier argument I.e., Column_name et «int» indique la dimension du tableau mesuré. Résumé, la longueur du tableau peut être mesurée facilement avec différentes fonctions et clauses différentes.