Come trovare la lunghezza dell'array in PostgreSQL?

Come trovare la lunghezza dell'array in PostgreSQL?
PostgreSQL ha aggiunto la funzione di "Array_Length" nell'8.4 versione. L '"array_length" restituisce la lunghezza di una dimensione dell'array. Gli array sono molto utili per l'aggregazione e l'archiviazione dei dati per il più piccolo elenco. PostgreSQL consente di creare array di qualsiasi tipo di dati inclusi tipo integrato, un tipo definito dall'utente e anche array multidimensionali, ma PostgreSQL non consente di supportare una serie di domini.

Esistono anche altri tipi di dati se stai creando una tabella utilizzando PGADMIN. In questo articolo, imparerai come trovare una lunghezza di un array in PostgreSQL in Windows 10 con l'aiuto di alcuni esempi.

Sintassi

La sintassi per trovare una lunghezza dell'array è:

# array_length (column_name, int)

Nella sintassi sopra, "Array_Length" restituisce la lunghezza del "NAME colonnario" desiderato che è scritto in primo luogo. Il "int" al secondo posto menziona quale dimensione dell'array viene misurata.

Array_Length in PostgreSQL

Per trovare una lunghezza dell'array, è necessario creare una tabella in PostgreSQL utilizzando lo strumento PGAdmin o SQL Shell. Ho creato una tabella denominata "generi alimentari" che comprendono tre colonne. La sintassi per la creazione di una tabella è:

# Crea generi alimentari della tabella ("id" intero non null, personaggio "persona" che varia (100), "oggetti" caratteri che variano [255], chiave primaria ("id"));

Nella query sopra, come suggerisce il nome, "Crea tabella" crea la tabella con il nome di "generi alimentari" che è composto da tre diverse colonne chiamate "id", "persona" e "elementi". Con ogni nome di colonna, i loro tipi di dati sono dichiarati, gli "elementi" sono dichiarati come un tipo di array usando [], il che indica che desideriamo il tipo di dati come array. Qui "ID" è indicato come la chiave primaria in una tabella. Dopo aver creato la tabella "generi alimentari", i dati per ciascuna colonna vengono inseriti in base ai rispettivi tipi di dati. Il tavolo "generi alimentari" ora sembra così

Nella colonna "ID" A ogni persona viene assegnato un numero e un nome nella colonna "persona". Nella colonna "Articoli", quegli articoli sono menzionati che ogni persona ha acquistato. Tutti gli elementi sono unidimensionali tranne quello in cui id = 7, è espresso come un array multidimensionale.

Ora che la tabella è creata, eseguiamo alcuni esempi per trovare la lunghezza di un array nella tabella "generi alimentari".

# Seleziona "id", "persona", "elementi", array_length ("elementi", 1) da "generi alimentari";

Nella query sopra, l'istruzione "Seleziona" è selezionare tutte le colonne menzionate tra cui "ID", "Person", "Elems". La funzione "Array_Length" che sta prendendo "elementi" e "1" di due parametri significa che vuole misurare la lunghezza della colonna "elementi" e "1" descrive la dimensione che l'array viene misurato. La query sopra mostra la seguente uscita:

L'output sopra mostra la lunghezza dell'array di ogni articolo che una persona ha acquistato. Come possiamo vedere che i dati non sono in un ordine particolare, la lunghezza di 3 elementi viene prima visualizzata e 1 elemento viene visualizzata alla fine, poiché l'istruzione SELECT restituisce la colonna in modo non mobile.

Array_Length Using Order By In PostgreSQL

Nell'esempio precedente, abbiamo visto la lunghezza di un array nel risultato non è stata ordinata. Possiamo ordinare la colonna facilmente usando la clausola "Ordine per" in ordine decrescente o ascendente eseguendo la seguente query:

# Seleziona "Id", "Person", "Elems", Array_Length ("Elemment", 1) da "Groceries" Order di Array_Length ("Elemment", 1) Desc;

Nella query sopra, la clausola "Ordine per" ha ordinato le righe in ordine decrescente come visualizzato nell'output seguente:

Si può vedere chiaramente che la clausola "ordine per" ha ordinato la colonna "elemento" in ordine decrescente come abbiamo menzionato nella query. Allo stesso modo, possiamo anche ordinare la lunghezza della colonna "elementi" anche in ordine crescente, ma questa volta userò un alias per la colonna "Array_Length" in modo da non doverla ripeterlo con la clausola "Ordine per". La query per ordinare la colonna in ordine crescente è:

# Seleziona "id", "persona", "elementi", array_length ("elementi", 1) len_asceding da "generi alimentari" di ordine di len_ascending asc;

Nella query sopra, ho dichiarato l'alias come "len_ascending" e la colonna è ordinata in ordine crescente che fornisce l'output di seguito:

Nell'output sopra, si può vedere l'alias utilizzato e la colonna viene ordinata in ordine crescente utilizzando la clausola "Ordine per" e la funzione "ASC" nella query.

Restituzione del massimo Array_Length in PostgreSQL

Se si desidera solo la lunghezza massima di un array in una colonna, è possibile limitare il risultato utilizzando la clausola "limite" nella domanda con la clausola "Ordine per". La clausola "limite" restituirà solo il numero di righe che hai menzionato. La query per restituire solo la lunghezza massima dell'array in PostgreSQL è:

# Seleziona "id", "persona", "elementi", array_length ("elementi", 1) da "generi alimentari" ordine di array_length ("elementi", 1) DESC limite 1;

In questa domanda, la clausola "Ordine per" e "limite" restituisce la lunghezza massima dell'array nella colonna "elementi". La clausola "Ordine per" e la funzione "DESC" stanno restituendo il valore più alto dalla colonna "elementi" e la clausola "limite" sta restituendo solo la riga 1 come menzionato in una query e il risultato viene visualizzato come:

La persona che ha acquistato il numero massimo di articoli è "Catherine" con una lunghezza di 6.

Puoi anche trovare la persona con gli articoli minimi di drogheria utilizzando la funzione "ASC" anziché la funzione "DESS" e può anche limitare le righe a più di 1.

Array_Length Using Where Clauso

Se vuoi trovare la lunghezza dell'array di una particolare persona, la clausola "dove" ti aiuterà a trovare quel record. La clausola "dove" filtra le righe in base alla condizione che hai impostato. Di seguito è riportata la query per "Array_Length" usando la clausola "dove":

# Seleziona "id", "persona", "elementi", array_length ("elementi", 1) da "generi alimentari" dove "persona" = 'barry';

Nella query sopra, ho specificato la condizione che trova la lunghezza dell'array dalla tabella "generi alimentari" in cui il nome della persona è Barry, che fornisce il seguente risultato:

L'output mostra che Barry ha acquistato due elementi che sono apparsi nell'ultima colonna "Array_Length".

Conclusione

Abbiamo discusso di come possiamo trovare la lunghezza di un array in PostgreSQL utilizzando esempi diversi. PostgreSQL lo rende meno complicato per l'uso di array in una query e trovare la lunghezza di una colonna usando solo la semplice sintassi Array_Length (column_name, int).

"Array_Length" in questa sintassi restituisce la lunghezza di un array del primo argomento i.e., column_name e "int" racconta la dimensione dell'array misurata. Riassumendo, la lunghezza dell'array può essere misurata facilmente con diverse funzioni e clausole.