Jak znaleźć długość tablicy w PostgreSQL?

Jak znaleźć długość tablicy w PostgreSQL?
PostgreSQL dodał funkcję „array_length” w 8.4 wersja. „Array_length” zwraca długość wymiaru tablicy. Tablice są bardzo pomocne w agregacji i przechowywania danych dla najmniejszej oferty. PostgreSQL umożliwia tworzenie tablic dowolnego typu danych, w tym typu wbudowanego, typu zdefiniowanego przez użytkownika i macierzy wielowymiarowych, ale PostgreSQL nie pozwala na obsługę tablicy domen.

Istnieją również inne typy danych, jeśli tworzysz tabelę za pomocą PGADMIN. W tym artykule dowiesz się, jak możesz znaleźć długość tablicy w PostgreSQL w systemie Windows 10 za pomocą kilku przykładów.

Składnia

Składnia do znalezienia długości tablicy to:

# array_length (kolumn_name, int)

W powyższej składni „array_length” zwraca długość pożądanej „nazwy_polution”, która jest napisana w pierwszej kolejności. „Int” na drugim miejscu wspomina o wymiarach tablicy.

Array_length w PostgreSQL

Aby znaleźć długość tablicy, musisz utworzyć tabelę w PostgreSQL albo za pomocą narzędzia PGADMIN lub SQL Shell. Stworzyłem tabelę o nazwie „Groceries” składająca się z trzech kolumn. Składnia do tworzenia tabeli to:

# Utwórz spożycie spożywcze („ID” Noth Null, „Osoba” Znak zmieniający się (100), „elementy” zmieniające się [255], klucz podstawowy („id”));

W powyższym zapytaniu, jak sama nazwa wskazuje, „Utwórz tabelę” tworzy tabelę o nazwie „artykułów spożywczych”, która składa się z trzech różnych kolumn zwanych „id”, „osobą” i „elementy”. Przy każdej nazwie kolumny ich typy danych są zadeklarowane, „elementy” są zadeklarowane jako typ tablicy za pomocą [], co wskazuje, że chcemy typu danych jako tablicy. Tutaj „id” jest określony jako klucz podstawowy w tabeli. Po utworzeniu tabeli „artykuły spożywcze” dane dla każdej kolumny są wstawiane zgodnie z ich odpowiednimi typami danych. Stół „artykułów spożywczych” wygląda teraz tak

W kolumnie „id” Każda osoba jest przypisywana liczbą i nazwą w kolumnie „Osoba”. W kolumnie „elementy” wymieniane są te elementy, które każda osoba kupiła. Wszystkie elementy są jednowymiarowe, z wyjątkiem tego, w którym id = 7, jest wyrażany jako tablica wielowymiarowa.

Teraz, gdy stół jest tworzony, uruchommy kilka przykładów, aby znaleźć długość tablicy w tabeli „artykuły spożywcze”.

# Wybierz „ID”, „osobę”, „Items”, array_length („Items”, 1) z „artykułów spożywczych”;

W powyższym zapytaniu instrukcja „Wybierz” wybiera wszystkie wspomniane kolumny, w tym „id”, „osoba”, „elementy”. Funkcja „array_length”, która przyjmuje dwa parametry „elementy” i „1” oznacza, że ​​chce zmierzyć długość kolumny „elementy”, a „1” opisuje wymiar mierzony tablicę. Powyższe zapytanie pokazuje następujące dane wyjściowe:

Powyższe wyjście pokazuje długość tablicy każdego elementu, którą kupiła osoba. Jak widzimy, że dane nie są w określonej kolejności, długość 3 elementów jest wyświetlana najpierw, a 1 element jest wyświetlany na końcu, ponieważ instrukcja wyboru zwraca kolumnę w nieposłuszny sposób.

Array_length za pomocą kolejności w PostgreSQL

W poprzednim przykładzie widzieliśmy, że długość tablicy w wyniku nie została sortowana. Możemy łatwo sortować kolumnę za pomocą klauzuli „Zakaz według” w kolejności malejącej lub rosnącej, uruchamiając następujące zapytanie:

# Wybierz „id”, „osobę”, „i elementy”, array_length („Items”, 1) z „Groceries” Zamówienie według array_length („Items”, 1) DESC;

W powyższym zapytaniu klauzula „Order by” posortowała wiersze w kolejności malejącej, jak wyświetlono w poniższym wyjściu:

Można wyraźnie zobaczyć, że klauzula „zamówienia według” posortowała kolumnę „elementu” w kolejności malejącej, jak wspomnieliśmy w zapytaniu. Podobnie możemy również sortować długość kolumny „elementy” w kolejności rosnącej, ale tym razem będę używać aliasu dla kolumny „array_length”, aby nie musiałem go powtarzać z klauzulą ​​„rzędu”. Zapytanie do sortowania kolumny w kolejności rosnącej jest:

# Wybierz „id”, „osobę”, „i elementy”, array_length („Items”, 1) len_ascending z kolejności „artykułów” przez len_ascending ASC;

W powyższym zapytaniu zadeklarowałem alias jako „len_ascinging”, a kolumna jest sortowana w kolejności rosnącej, co daje poniższe wyjście:

W powyższym wyjściu użyte alias można zobaczyć, a kolumna jest sortowana w kolejności rosnącej za pomocą klauzuli „rzędu” i funkcji „ASC” w zapytaniu.

Zwracanie maksymalnej długości macierzy w PostgreSQL

Jeśli chcesz tylko maksymalną długość tablicy w kolumnie, możesz ograniczyć wynik za pomocą klauzuli „Limit” w zapytaniu z klauzulą ​​„Zakaz według”. Klauzula „limitu” zwróci tylko liczbę wspomnianych wierszy. Zapytanie o zwrócenie tylko maksymalnej długości tablicy w PostgreSQL jest:

# Wybierz „ID”, „osobę”, „Items”, array_length („Items”, 1) z zamówienia „Groceries” według Array_Length („Items”, 1) DESC LIMIT 1;

W tym zapytaniu klauzula „Zakon według” i „Limit” zwraca maksymalną długość tablicy w kolumnie „Elementy”. Funkcja „Zakon według” i „DESC” zwraca najwyższą wartość z kolumny „Elementy”, a klauzula „limitu” zwraca tylko 1 wiersz, jak wspomniano w zapytaniu, a wynik jest wyświetlany jako:

Osobą, która kupiła maksymalną liczbę przedmiotów, to „Catherine” o długości tablicy 6.

Możesz także znaleźć osobę z minimalnymi elementami spożywczymi za pomocą funkcji „ASC” zamiast funkcji „DESC”, a także może ograniczyć wiersze do więcej niż 1.

Array_length za pomocą klauzuli o

Jeśli chcesz znaleźć długość tablicy konkretnej osoby, klauzula „gdzie” pomoże Ci znaleźć ten rekord. Klauzula „gdzie” filtruje wiersze zgodnie z ustawionym warunkiem. Poniżej znajduje się zapytanie „array_length” za pomocą klauzuli „gdzie”:

# Wybierz „ID”, „osobę”, „Items”, array_length („Items”, 1) z „artykułów spożywczych” gdzie „osoba” = „barry”;

W powyższym zapytaniu określiłem warunek, który znajduje długość tablicy z tabeli „artykuły spożywcze”, w których nazwa danej osoby to Barry, co daje następujący wynik:

Wyjście pokazuje, że Barry kupił dwa elementy, które pojawiły się w ostatniej kolumnie „Array_length”.

Wniosek

Omówiliśmy, w jaki sposób możemy znaleźć długość tablicy w PostgreSQL, wykorzystując różne przykłady. PostgreSQL sprawia, że ​​jest mniej skomplikowane w użyciu tablic w zapytaniu i znajdowaniu długości kolumny za pomocą tylko prostej składni array_length (kolumn_name, int).

„Array_length” w tej składni zwraca długość tablicy pierwszego argumentu i.mi., nazwa_polution i „int” informuje wymiar zmierzonej tablicy. Podsumowując, długość tablicy można łatwo mierzyć za pomocą różnych funkcji i klauzul.