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ę.