PostgreSQL

Jak korzystać z funkcji PostgreSQL ARRAY_AGG?

Jak korzystać z funkcji PostgreSQL ARRAY_AGG?
Metoda agregująca ARRAY_AGG() jest jedną z metod używanych w PostgreSQL, która pobiera kilka wartości wejściowych i łączy je w tablicę, w tym wartości NULL. Zwraca tablicę z każdą wartością z grupy wejściowej jako część. Aby posortować zestaw wyników za pomocą funkcji PostgreSQL ARRAY_AGG, użyjesz wyrażenia ORDER BY. W razie potrzeby możesz również użyć klauzuli WHERE.

Aby zrozumieć metodę agregacji ARRAY_Agg(), musisz wykonać kilka przykładów. W tym celu otwórz powłokę wiersza poleceń PostgreSQL. Jeśli chcesz włączyć inny serwer, zrób to, podając jego nazwę. W przeciwnym razie pozostaw puste miejsce i naciśnij przycisk Enter, aby przejść do bazy danych. Jeśli chcesz użyć domyślnej bazy danych, e.sol., Postgres, a następnie pozostaw go bez zmian i naciśnij Enter; w przeciwnym razie wpisz nazwę bazy danych, e.sol., „Test”, jak pokazano na poniższym obrazku. Jeśli chcesz użyć innego portu, napisz go, w przeciwnym razie pozostaw go bez zmian i naciśnij Enter, aby kontynuować. Poprosi Cię o dodanie nazwy użytkownika, jeśli chcesz przełączyć się na inną nazwę użytkownika. Dodaj nazwę użytkownika, jeśli chcesz, w przeciwnym razie po prostu naciśnij „Enter”. Na koniec musisz podać swoje aktualne hasło użytkownika, aby zacząć korzystać z wiersza poleceń, używając tego konkretnego użytkownika, jak poniżej. Po pomyślnym wprowadzeniu wszystkich wymaganych informacji możesz już iść.

Użycie ARRAY_AGG w pojedynczej kolumnie:

Rozważ tabelę „osoba” w bazie danych „test” mającą trzy kolumny; „id”, „imię” i „wiek”. Kolumna „id” zawiera identyfikatory wszystkich osób. Podczas gdy pole „imię” zawiera nazwiska osób, a kolumna „wiek” wiek wszystkich osób all.

>> WYBIERZ * OD osoby;

W zależności od tabeli narzutu musimy zastosować metodę agregującą ARRAY_AGG, aby poprzez kolumnę „nazwa” zwrócić listę tablicy wszystkich nazw tabeli. Dzięki temu musisz użyć funkcji ARRAY_AGG() w zapytaniu SELECT, aby pobrać wynik w postaci tablicy. Wypróbuj podane zapytanie w powłoce poleceń i uzyskaj wynik. Jak widać, mamy poniższą kolumnę wyjściową „array_agg” z nazwami wymienionymi w tablicy dla tego samego zapytania.

>> SELECT ARRAY_AGG(imię) FROM osoby;

Użycie ARRAY_AGG w wielu kolumnach z klauzulą ​​ORDER BY:

Przykład 01:

Stosując funkcję ARRAY_AGG do wielu kolumn przy użyciu klauzuli ORDER BY, rozważ tę samą tabelę „osoba” w „teście” bazy danych, która ma trzy kolumny; „id”, „imię” i „wiek”. W tym przykładzie użyjemy klauzuli GROUP BY.

>> WYBIERZ * OD osoby;

Połączyliśmy wynik zapytania SELECT w listę tablicową, używając dwóch kolumn „imię” i „wiek”. W tym przykładzie użyliśmy spacji jako znaku specjalnego, który do tej pory był używany do łączenia obu tych kolumn. Z drugiej strony pobieraliśmy osobno kolumnę „id”. Wynik połączonej tablicy zostanie wyświetlony w kolumnie „persondata” w czasie wykonywania. Zestaw wyników zostanie najpierw pogrupowany według „id” osoby i posortowany w kolejności rosnącej pola „id”. Wypróbujmy poniższe polecenie w powłoce i zobaczmy sami wyniki. Jak widać, mamy osobną tablicę dla każdej połączonej wartości imienia i wieku na poniższym obrazku.

>> SELECT id, ARRAY_AGG (imię ||"|| wiek) jako dane osobowe FROM osoby GROUP BY id ORDER BY id;



Przykład 02:

Rozważmy nowo utworzoną tabelę „Pracownik” w ramach „testu” bazy danych, która ma pięć kolumn; „id”, „imię”, „wynagrodzenie”, „wiek” i „e-mail”. Tabela przechowuje wszystkie dane o 5 Pracownikach pracujących w firmie. W tym przykładzie użyjemy znaku specjalnego „-”, aby połączyć dwa pola zamiast używać spacji, korzystając z klauzul GROUP BY i ORDER BY.

>> WYBIERZ * Z Pracownik;

Łączymy dane z dwóch kolumn „name” i „email” w tablicy, używając między nimi „-”. Tak jak poprzednio, wyraźnie wyodrębniamy kolumnę „id”. Połączone wyniki kolumn będą wyświetlane jako „emp” w czasie wykonywania run. Zestaw wyników zostanie najpierw złożony przez „id” osoby, a następnie zostanie uporządkowany w porządku rosnącym w kolumnie „id”. Spróbujmy bardzo podobnego polecenia w powłoce z drobnymi zmianami i zobaczmy konsekwencje. Z poniższego wyniku uzyskałeś odrębną tablicę dla każdej połączonej wartości nazwa-e-mail przedstawionej na obrazku, podczas gdy znak „-” jest używany w każdej wartości.

>> SELECT id, ARRAY_AGG (nazwa || '-' || email) AS emp FROM Employe GROUP BY id ORDER BY id;

Użycie ARRAY_AGG w wielu kolumnach bez klauzuli ORDER BY:

Możesz również wypróbować metodę ARRAY_AGG na dowolnej tabeli bez użycia klauzuli ORDER BY i GROUP BY. Załóżmy, że nowo utworzony „aktor” tabeli w starym „teście” bazy danych ma trzy kolumny; „id”, „fname” i „lname”. Tabela zawiera dane o imionach i nazwiskach aktorów wraz z ich identyfikatorami.

>> WYBIERZ * OD aktora;

Połącz więc dwie kolumny „fname” i „lname” na liście tablicy, używając spacji między nimi, tak samo jak w dwóch ostatnich przykładach. Nie usunęliśmy wyraźnie kolumny „id” i używaliśmy funkcji ARRAY_AGG w zapytaniu SELECT. Otrzymana kolumna połączonej tablicy będzie prezentowana jako „aktory”. Wypróbuj poniższe zapytanie w powłoce poleceń i spójrz na wynikową tablicę. Pobraliśmy pojedynczą tablicę z przedstawioną wartością skonkatenowaną nazwa-e-mail, oddzieloną przecinkiem od wyniku.

Wniosek:

Wreszcie prawie skończyłeś wykonywanie większości przykładów wymaganych do zrozumienia metody agregującej ARRAY_AGG. Wypróbuj więcej z nich na swoim końcu, aby uzyskać lepsze zrozumienie i wiedzę.

Gry Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
Jak przechwytywać i przesyłać strumieniowo sesję gry w systemie Linux
W przeszłości granie w gry było uważane tylko za hobby, ale z czasem branża gier odnotowała ogromny wzrost pod względem technologii i liczby graczy. P...
Gry Najlepsze gry do grania ze śledzeniem rąk
Najlepsze gry do grania ze śledzeniem rąk
Oculus Quest niedawno wprowadził świetny pomysł śledzenia rąk bez kontrolerów. Przy stale rosnącej liczbie gier i działań, które wspierają zarówno for...
Gry Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Jak wyświetlić nakładkę OSD w pełnoekranowych aplikacjach i grach dla systemu Linux?
Granie w gry pełnoekranowe lub korzystanie z aplikacji w trybie pełnoekranowym bez rozpraszania uwagi może odciąć Cię od istotnych informacji systemow...