Array-Länge in PostgreSQL

Bilal Shahid 15 Februar 2024
  1. die PostgreSQL array_length() Funktionalität
  2. die PostgreSQL Kardinalität()-Funktionalität
  3. Verwenden Sie die Funktion array_length(), um die Array-Länge in PostgreSQL abzurufen
  4. Verwenden Sie die Funktion cardinality(), um die Array-Länge in PostgreSQL abzurufen
  5. Abschluss
Array-Länge in PostgreSQL

Dieser Artikel beschreibt die Berechnung der Länge eines Arrays mit einer der beiden Funktionen in PostgreSQL: array_length() und cardinality(). Beide Funktionen werden detailliert mit mehreren Beispielen in PostgreSQL beschrieben.

Arrays wurden in PostgreSQL als Datentyp verwendet. Mit der Verwendung von Arrays sind zahlreiche Funktionalitäten verbunden.

Von der Berechnung der Array-Länge bis zur Suche nach einem bestimmten Array-Element wird alles durch die in PostgreSQL unterstützten Funktionalitäten abgedeckt.

die PostgreSQL array_length() Funktionalität

Eine der beiden wesentlichen Funktionen, die bei der Berechnung der Länge eines Arrays helfen, ist die Funktion array_length(). Es ist die grundlegendste Funktion, die die Länge eines beliebigen Arrays mithilfe von zwei Parametern berechnet: dem Array und der entsprechenden Array-Dimension, für die die Länge berechnet werden muss (wenn das Array mehrdimensional ist.

Dieser Artikel enthält Beispiele zur Berechnung der Länge für ein ein- und mehrdimensionales Array mit der Funktion array_length().

die PostgreSQL Kardinalität()-Funktionalität

Die zweite Funktion in PostgreSQL zur Berechnung der Länge eines Arrays ist die Funktion cardinality(). Wenn Sie PostgreSQL Version 9.4 oder höher ausführen, unterstützt die Software die Funktion Kardinalität().

Es funktioniert, indem es einen Parameter empfängt: das Array. Die Funktion gibt einen ganzzahligen Wert zurück, der die Gesamtzahl der Elemente im Array angibt.

Beispiele für die Verwendung der Funktion Kardinalität() finden Sie unten.

Verwenden Sie die Funktion array_length(), um die Array-Länge in PostgreSQL abzurufen

Die Funktion array_length() kann für ein- und mehrdimensionale Arrays verwendet werden. Die folgenden Beispiele verdeutlichen die Arbeitsweise der Funktion.

Beispiel 1

Hier ist das erste Beispiel, das die Länge eines eindimensionalen Arrays berechnet:

SELECT array_length(ARRAY[1,2,3], 1);

Die obige Abfrage generiert die folgende Ausgabe:

Länge des PostgreSQL-Arrays – Beispiel 1

Beispiel 2

Lassen Sie uns das Verhalten der Funktion array_length() demonstrieren, wenn sie ein leeres Array als Parameter erhält:

SELECT array_length(ARRAY[]::int[], 1);

In diesem Fall könnten Sie davon ausgehen, dass die Ausgabe Null ist; Die Funktion gibt jedoch einen NULL-Wert zurück. Dies liegt daran, dass array_length() so konzipiert ist, dass es einen NULL-Wert liefert, wenn es ein leeres Array empfängt.

Das Abfrageergebnis lautet wie folgt:

Länge des PostgreSQL-Arrays – Beispiel 2

Beispiel 3

Ein ähnliches Verhalten zeigt die Funktion array_length() wie oben, wenn sie ein Array mit fehlenden Dimensionen empfängt, wie unten gezeigt:

SELECT array_length(ARRAY[1,2,3], 2);

In diesem Fall erhielt die Funktion ein eindimensionales Array als Parameter; Es fordert die Funktion jedoch auf, die Größe der zweiten Dimension des Arrays zurückzugeben. Dies ergibt einen NULL-Wert.

Hinweis: Die Funktion array_length() liefert denselben Wert, wenn sie ein leeres Array oder ein Array mit fehlender Dimension empfängt. Dies macht es für den Benutzer schwierig, den Fehler im Falle einer fehlenden Array-Dimension zu erkennen.

Die Ausgabe des Beispiels ist unten angehängt:

Länge des PostgreSQL-Arrays – Beispiel 3

Beispiel 4

Lassen Sie uns die Funktionsweise der Funktion auf einem mehrdimensionalen Array besprechen. Die beiden folgenden Abfragen geben einen vollständigen Einblick in die Funktion array_length().

Abfrage 1:

Als Parameter wird der Funktion array_length() ein zweidimensionales Array übergeben. Es soll die Länge der ersten Dimension berechnen:

SELECT array_length(ARRAY[[1, 2], [3, 4], [5, 6]], 1);

Die Abfrage generiert das folgende Ergebnis:

Länge des PostgreSQL-Arrays – Beispiel 4 Abfrage 1

Abfrage 2:

Die zweite Abfrage übergibt dasselbe Array als Parameter an die Funktion array_length(); es fragt jedoch nach der Länge der zweiten Dimension des Arrays:

SELECT array_length(ARRAY[[1, 2], [3, 4], [5, 6]], 2);

Die Abfrage generiert das folgende Ergebnis:

Länge des PostgreSQL-Arrays – Beispiel 4 Abfrage 2

Hinweis: Die beiden Abfragen sind ein hervorragendes Beispiel, um die Funktionsweise der Funktion array_length() mit einem mehrdimensionalen Array zu verstehen.

Verwenden Sie die Funktion cardinality(), um die Array-Länge in PostgreSQL abzurufen

Die Funktion cardinality() kann für ein ein- und mehrdimensionales Array verwendet werden. Nachfolgend sind einige Beispiele beigefügt, die die Funktionsweise der Funktion verdeutlichen.

Als Parameter für die Funktion cardinality() werden identische Arrays verwendet. Dies soll Ihnen helfen, die Funktionsweise der Funktion Kardinalität() zu verstehen und gleichzeitig zwischen den beiden Methoden zur Berechnung der Länge des Arrays zu unterscheiden.

Beispiel 1

Wir haben das gleiche Array wie in Beispiel 1 unter dem Funktionsabschnitt array_length() verwendet.

SELECT cardinality(ARRAY[1,2,3]);

Die Abfrage berechnet die Gesamtzahl der Elemente und zeigt das erwartete Ergebnis wie unten gezeigt an:

PostgreSQL-Kardinalität – Beispiel 1

Beispiel 2

Die Funktion cardinality() funktioniert anders, wenn ein leeres Array als Parameter übergeben wird. Im Gegensatz zu array_length() zeigt die Funktion cardinality() bei einem leeren Array eine Null an.

SELECT cardinality(ARRAY[]::int[]);

Das Ergebnis der Abfrage ist unten angehängt:

PostgreSQL-Kardinalität – Beispiel 2

Beispiel 3

Als Parameter wurde der Funktion cardinality() ein eindimensionales textbasiertes Array übergeben, das wie erwartet funktioniert:

SELECT cardinality(ARRAY['hello', 'to', 'example', 'three']);

Das Ergebnis der Abfrage ist unten angehängt:

PostgreSQL-Kardinalität – Beispiel 3

Beispiel 4

Wenn Sie zur Funktionalität von cardinality() mit einem mehrdimensionalen Array übergehen, gibt es die Gesamtzahl der Elemente in jeder Array-Dimension zurück.

SELECT cardinality(ARRAY[[1, 2], [3, 4], [5, 6]]);

Das zweidimensionale Array hat insgesamt sechs Elemente; Daher sollte auch die Funktion cardinality() dieselbe Zahl zurückgeben, wie gezeigt:

PostgreSQL-Kardinalität – Beispiel 4

Beispiel 5

Ein textbasiertes mehrdimensionales Array funktioniert ähnlich wie ein ganzzahlbasiertes mehrdimensionales Array.

SELECT cardinality(ARRAY[['hello'], ['there']]);

Die Gesamtzahl der Elemente wird von der Funktion cardinality() zurückgegeben:

PostgreSQL-Kardinalität – Beispiel 5

Abschluss

Die beiden Funktionen array_length() und cardinality() berechnen die Länge eines Arrays; beide arbeiten jedoch separat. Im gesamten Artikel wurden zahlreiche Beispiele hervorgehoben, um die Unterschiede zwischen den beiden Funktionen aufzuzeigen.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub