Jak używać funkcji PostgreSQL Array_Agg?

Jak używać funkcji PostgreSQL Array_Agg?
Metoda agregatu Array_Agg () jest jedną z metod stosowanych w PostgreSQL, która przyjmuje kilka wartości wejściowych i łączy je w tablicę, w tym wartości zerowe. Zwraca tablicę z każdą wartością z grupy wejściowej jako część. Aby sortować zestaw wyników za pomocą funkcji PostgreSQL Array_Agg, będziesz używać zamówienia według frazy. Możesz także użyć klauzuli gdzie w razie potrzeby.

Aby zrozumieć metodę agregatów array_agg (), musisz wykonać kilka przykładów. W tym celu otwórz powłokę wiersza polecenia PostgreSQL. Jeśli chcesz włączyć na drugi serwer, zrób to, podając swoją nazwę. W przeciwnym razie pozostaw miejsce puste i naciśnij przycisk Enter, aby wskoczyć na bazę danych. Jeśli chcesz użyć domyślnej bazy danych, e.G., Postgres, a następnie zostaw to, co jest i naciśnij Enter; W przeciwnym razie napisz nazwę bazy danych, e.G., „Test”, jak pokazano na poniższym obrazku. Jeśli chcesz użyć innego portu, napisz go, w przeciwnym razie zostaw go tak, jak jest i dotknij Enter, aby kontynuować. Poprosi Cię o dodanie nazwy użytkownika, jeśli chcesz przejść do innej nazwy użytkownika. Dodaj nazwę użytkownika, jeśli chcesz, w przeciwnym razie po prostu naciśnij „Enter”. Ostatecznie musisz podać bieżące hasło użytkownika, aby zacząć korzystać z linii polecenia za pomocą tego konkretnego użytkownika jak poniżej. Po udanych zgłoszeniach wszystkich wymaganych informacji, jesteś gotowy.

Użycie array_agg w pojedynczej kolumnie:

Rozważ tabelę „osobę” w bazie danych „Test” z trzema kolumnami; „ID”, „Nazwa” i „Wiek”. Kolumna „id” ma identyfikatory wszystkich osób. Podczas gdy pole „nazwa” zawiera nazwy osób i kolumnę „wiek” w wieku.

>> Wybierz * od osoby;

W zależności od tabeli ogólnej, musimy zastosować metodę agregatów Array_Agg, aby zwrócić listę tablicy wszystkich nazw tabeli za pomocą kolumny „Nazwa”. Dzięki temu musisz użyć funkcji Array_Agg () w zapytaniu Wybierz, aby pobrać wynik w formie tablicy. Wypróbuj podane zapytanie w swojej powładzie poleceń i uzyskaj wynik. Jak widać, mamy poniższą kolumnę wyjściową „array_agg”, mając nazwiska wymienione w tablicy tego samego zapytania.

>> Wybierz Array_Agg (imienia) od osoby;

Korzystanie z Array_Agg w wielu kolumnach z kolejnością według klauzuli:

Przykład 01:

Zastosowanie funkcji Array_Agg do wielu kolumn podczas korzystania z klauzuli kolejności, rozważ tę samą tabelę „osobę” w bazie danych „Test” z trzema kolumnami; „ID”, „Nazwa” i „Wiek”. W tym przykładzie będziemy używać grupy według klauzuli.

>> Wybierz * od osoby;

Kontenikujemy wynik Wybierz zapytanie w liście tablic podczas korzystania z dwóch kolumn „Nazwa” i „Wiek”. W tym przykładzie używamy przestrzeni jako charakteru specjalnego, który został użyty do połączenia obu tych kolumn do tej pory. Z drugiej strony osobno przynosiliśmy kolumnę „id”. Połączony wynik tablicy zostanie pokazany w kolumnie „persondata” w czasie wykonywania. Zestaw wyników zostanie najpierw zgrupowany według „id” osoby i posortowany w kolejności rosnącej „id”. Wypróbujmy poniższe polecenie w powłoce i zobaczmy wyniki samodzielnie. Widać, że mamy osobną tablicę dla każdej zawartej wartości nazwy w poniższym obrazku.

>> Wybierz id, array_agg (nazwa || "|| wiek) jako persondata z grupy osobowej według identyfikatora według identyfikatora;



Przykład 02:

Rozważ nowo utworzoną tabelę „pracownik” w bazie danych „Test” z pięcioma kolumnami; „ID”, „Nazwa”, „wynagrodzenie”, „wiek” i „e -mail”. Tabela przechowuje wszystkie dane o 5 pracownikach pracujących w firmie. W tym przykładzie będziemy używać charakteru specjalnego „-„ do połączenia dwóch pól zamiast używania przestrzeni przy jednoczesnym wykorzystaniu grupy według klauzuli według klauzuli.

>> Wybierz * od pracownika;

Kontenerujemy dane dwóch kolumn, „nazwa” i „e-mail” w tablicy podczas używania „-” między nimi. Tak samo jak wcześniej, wyraźnie wyodrębniamy kolumnę „id”. Połączone wyniki kolumny będą pokazane jako „emp” w czasie wykonywania. Zestaw wyników zostanie najpierw zmontowany przez „id” osoby, a potem zostanie on zorganizowany w kolejności rosnącej kolumny „id”. Spróbujmy bardzo podobnego polecenia w skorupce z niewielkimi zmianami i zobaczmy konsekwencje. Z wyniku poniżej uzyskałeś odrębną tablicę dla każdej wartości imienia Contagenated Wartość przedstawiona na zdjęciu, podczas gdy znak „-” jest używany w każdej wartości.

>> Wybierz identyfikator, array_agg (nazwa || '-' || e-mail) jako emp z grupy pracowników według zamówienia identyfikatora według identyfikatora;

Korzystanie z Array_Agg w wielu kolumnach bez kolejności według klauzuli:

Możesz także wypróbować metodę Array_Agg na dowolnej tabeli bez użycia klauzuli zamówienia i grupy. Załóż, że nowo utworzona tabela „aktor” w swojej starej bazie danych „Test” z trzema kolumnami; „ID”, „Fname” i „Lname”. Tabela zawiera dane o imionach i nazwisku aktora wraz z ich identyfikatorami.

>> Wybierz * od aktora;

Więc połącz dwie kolumny „fname” i „lname” na liście tablic podczas korzystania z przestrzeni między nimi, tak samo jak w dwóch ostatnich przykładach. Nie wyjęliśmy kolumny „ID” wyraźnie Andee, używali funkcji Array_Agg w ramach zapytania. Wynikająca z tego tablica połączona kolumna zostanie przedstawiona jako „aktorzy”. Wypróbuj poniżej wyświetlone zapytanie w skorupce poleceń i przejrzyj wynikającą z tego tablicę. Przyprowadziliśmy pojedynczą tablicę z przedstawioną wartością imieniem, oddzieloną przecinkiem od wyniku.

Wniosek:

Wreszcie, prawie skończyłeś wykonanie większości przykładów wymaganych do zrozumienia metody agregatu Array_Agg. Wypróbuj ich więcej na końcu, aby lepiej zrozumieć i wiedzę.