So finden Sie Arraylänge in PostgreSQL?

So finden Sie Arraylänge in PostgreSQL?
PostgreSQL fügte die Funktion von "array_length" in der 8 hinzu.4 Version. Das "Array_Length" gibt die Länge einer Array -Dimension zurück. Arrays sind sehr hilfreich für die Aggregation und das Speichern von Daten für die kleinste Auflistung. Mit PostgreSQL können Sie Arrays eines beliebigen Datentyps einschließlich eingebauter Typen, benutzerdefinierter Typ und mehrdimensionaler Arrays erstellen. PostgreSQL lässt jedoch nicht zu, dass ein Array von Domänen unterstützt werden kann.

Es gibt auch andere Datentypen, wenn Sie eine Tabelle mit Pgadmin erstellen. In diesem Artikel lernen Sie, wie Sie in PostgreSQL in Windows 10 eine Arraylänge mit Hilfe einiger Beispiele finden können.

Syntax

Die Syntax zum Auffinden einer Arraylänge lautet:

# Array_Length (column_name, int)

In der obigen Syntax gibt die "array_length" die Länge Ihres gewünschten "column_name" zurück, der an erster Stelle geschrieben ist. Das „int“ an zweiter Stelle erwähnt, welche Dimension des Arrays gemessen wird.

Array_Length in PostgreSQL

Um eine Array -Länge zu finden. Ich habe eine Tabelle mit dem Namen "Lebensmittel" erstellt, die aus drei Spalten bestehen. Die Syntax zum Erstellen einer Tabelle lautet:

# Tabelle Lebensmittel erstellen ("ID" Integer Not Null, "Person" -Charakter variieren (100), "Elements" -Scharakter variieren [255], Primärschlüssel ("ID");

In der obigen Abfrage erstellt, wie der Name schon sagt, die Tabelle mit dem Namen "Lebensmittel", der aus drei verschiedenen Spalten "ID", "Person" und "Elementen" besteht, die Tabelle erstellt, die aus drei verschiedenen Spalten zusammengesetzt ist. Mit jedem Spaltennamen werden ihre Datentypen deklariert, die „Elemente“ werden als Array -Typ mit [] deklariert, was darauf hinweist, dass wir den Datentyp als Array wünschen. Hier wird „ID“ als Hauptschlüssel in einer Tabelle angegeben. Nach dem Erstellen der Tabelle „Lebensmittel“ werden die Daten für jede Spalte gemäß ihren jeweiligen Datentypen eingefügt. Der Tisch „Lebensmittel“ sieht jetzt so aus

In der Spalte "ID" wird jeder Person eine Nummer und einen Namen in der Spalte "Person" zugewiesen. In der Spalte „Artikel“ werden diese Artikel erwähnt, die jede Person gekauft hat. Alle Elemente sind eindimensional, mit Ausnahme der, wobei ID = 7 als mehrdimensionales Array ausgedrückt wird.

Lassen Sie uns nun, da die Tabelle erstellt wird, einige Beispiele, um die Länge eines Arrays in der Tabelle „Lebensmittel“ zu finden.

# "ID", "Person", "Elemente", Array_Length ("Elemente", 1) aus "Lebensmittel" aus ";

In der obigen Abfrage wählt die Anweisung "Auswählen" alle genannten Spalten aus, einschließlich "ID", "Person", "Elemente". Die Funktion „Array_Length“, die zwei Parameter „Elemente“ und „1“ enthält. Die obige Abfrage zeigt die folgende Ausgabe:

Die obige Ausgabe zeigt die Arraylänge jedes Artikels, die eine Person gekauft hat. Wie wir sehen können, dass die Daten nicht in einer bestimmten Reihenfolge sind, wird zuerst die Länge von 3 Elementen angezeigt, und im Ende wird ein Element angezeigt.

Array_Length Verwenden von Order by in postgesql

Im vorherigen Beispiel haben wir gesehen, dass die Länge eines Arrays im Ergebnis nicht sortiert wurde. Wir können die Spalte leicht mit der Klausel "Order By" in absteigender oder aufsteigender Reihenfolge sortieren, indem wir die folgende Abfrage ausführen:

# "ID", "Person", "Elemente", Array_Length ("Elemente", 1) aus "Lebensmittel" bestellen nach Array_Length ("Elemente", 1) Desc;

In der obigen Abfrage hat die Klausel „Order By“ die Zeilen in absteigender Reihenfolge sortiert, wie in der folgenden Ausgabe angezeigt:

Es ist deutlich zu sehen, dass die Klausel „Order By“ die Spalte „Element“ in absteigender Reihenfolge sortiert hat, wie wir in der Abfrage erwähnt wurden. In ähnlicher Weise können wir auch die Spaltenlänge „Elemente“ in aufsteigender Reihenfolge sortieren, aber diesmal werde ich einen Alias ​​für die Spalte "Array_length" verwenden, damit ich sie nicht mit der Klausel "Order by" wiederholen muss. Die Abfrage zum Sortieren der Spalte in aufsteigender Reihenfolge lautet:

# "ID", "Person", "Elemente", Array_Length ("Elemente", 1) len_ascending aus "Lebensmittel" -Heen von len_ascending asc;

In der obigen Abfrage habe ich den Alias ​​als „len_ascending“ deklariert und die Spalte ist in aufsteigender Reihenfolge sortiert, wodurch die folgende Ausgabe angibt:

In der obigen Ausgabe ist der verwendete Alias ​​zu sehen und die Spalte wird in aufsteigender Reihenfolge sortiert, indem die Funktion „Order by“ und „ASC“ in der Abfrage verwendet wird.

Returning Maximum Array_Length in PostgreSQL zurückgeben

Wenn Sie nur die maximale Länge eines Arrays in einer Spalte möchten, können Sie das Ergebnis mit der Klausel „Grenz“ in Ihrer Abfrage mit der Klausel „Order By“ verwenden. Die Klausel „Limit“ gibt nur die Anzahl der von Ihnen erwähnten Zeilen zurück. Die Abfrage zur Rückgabe nur die maximale Arraylänge in PostgreSQL lautet:

# "ID", "Person", "Elemente", Array_Length ("Elemente", 1) aus "Lebensmittel" bestellen nach array_length ("items", 1) Desc Limit 1;

In dieser Abfrage gibt die Klausel „Order by“ und „Limit“ die maximale Arraylänge in der Spalte „Elemente“ zurück. Die Klausel "Order By" und die Funktion "Desc" gibt den höchsten Wert aus der Spalte "Elemente" zurück, und die Klausel "Limit" gibt nur die 1 -Zeile zurück, wie in einer Abfrage erwähnt, und das Ergebnis wird als angezeigt:

Die Person, die die maximale Anzahl von Artikeln gekauft hat, ist „Catherine“ mit einer Array -Länge von 6.

Sie können die Person auch mit den minimalen Lebensmittelelementen finden, indem Sie die Funktion „ASC“ anstelle der Funktion „Desc“ verwenden und die Zeilen auch auf mehr als 1 beschränken.

Array_Length Verwenden Sie die WO -Klausel

Wenn Sie die Array -Länge eines bestimmten Personenelements finden möchten, hilft Ihnen die Klausel „WO“, diesen Datensatz zu finden. "Wo" -Klausel filtert die Zeilen gemäß der Bedingung, die Sie festgelegt haben. Unten finden Sie die Abfrage für "Array_Length" unter Verwendung der Klausel "Wo":

# "ID", "Person", "Elemente", Array_Length ("Elemente", 1) aus "Lebensmittel" wobei "Person" = 'Barry';

In der obigen Abfrage habe ich die Bedingung angegeben, die die Arraylänge aus der Tabelle „Lebensmittel“ findet, in der der Name der Person Barry ist, was das folgende Ergebnis ergibt:

Die Ausgabe zeigt, dass Barry zwei Elemente gekauft hat, die in der letzten Spalte „Array_Length“ angezeigt wurden.

Abschluss

Wir haben besprochen, wie wir die Länge eines Arrays in PostgreSQL unter Verwendung verschiedener Beispiele finden können. PostgreSQL macht es weniger kompliziert, Arrays in einer Abfrage zu verwenden und die Länge einer Spalte nur mit der einfachen Syntax zu finden Array_Length (column_name, int).

Die "array_length" in dieser Syntax gibt die Länge eines Arrays des ersten Arguments i zurück.e., column_name und „int“ enthält die Dimension des gemessenen Arrays. Durch Summieren kann die Arraylänge auch mit unterschiedlichen Funktionen und Klauseln leicht gemessen werden.