Funkcja Listagg Redshift

Funkcja Listagg Redshift
Amazon Redshift to usługa magazynowania danych bez serwera świadczona przez AWS do uruchomienia online analitycznego (OLAP). Jest bardzo wydajny i pozwala pracować nad złożonymi zapytaniami i problemami z dużymi danymi za pomocą równoległych węzłów obliczeniowych. Ponieważ Redshift jest zaprojektowany w bazie danych opartej na SQL, pozwala użytkownikom korzystać z wielu funkcji SQL, a także ma własne wbudowane funkcje. W tym artykule będziesz oświecony o przesunięciu ku czerwieni Listagg funkcjonowanie w celu połączenia wpisów różnych wierszy, aby utworzyć ciąg.

Jak określa jego nazwa, funkcja ta służy do agregowania listy. Lub bardziej proste słowa, służy do łączenia wpisów różnych wierszy w tabeli, aby utworzyć ciąg. Z pewnością jest to trudne do strawienia teoretycznie, więc poprowadzimy Cię więcej o to, używając niektórych przykładów. Ale najpierw wskoczmy do jego składni i zbadajmy więcej na ten temat.

Składnia do korzystania z funkcji Listagg

Listagg Funkcję w przesunięciu ku czerwieni może być stosowana przez przestrzeganie podanej składni.

Wybierz Listagg (odrębny , ) w grupie (zamówienie przez ) z

Powyższa składnia pokazuje wymagane atrybuty do używania funkcji Listagg.

  • Nazwa kolumny: Kolumna w tabeli przesunięcia ku czerwieni, w której zamierzasz użyć tej funkcji.
  • SYMITER: To jest po prostu separator listy, którego chcesz użyć. W większości przypadków przecinek (,) lub półkolis (;) jest używany jako ogranicznik. Jest to opcjonalne, aby wymienić i domyślnie jego wartość jest null.
  • Lista zamówień: Służy to do zdefiniowania, w jaki sposób chcesz sortować wartości.
  • Nazwa tabeli: To tylko tabela bazy danych, na której pracujesz.

Korzystanie z funkcji Listagg

W tej sekcji pokażemy kilka praktycznych przypadków użycia i przykłady, aby krótko wyjaśnić, w jaki sposób funkcja Listagg w Singshift można wykorzystać, aby uzyskać pożądany wynik.

Użycie 1

Najpierw weźmiemy najprostszy przykład, aby pokazać, jak działa funkcja Listagg w Redshift. Załóżmy, że masz tabelę bazy danych o nazwie It_Team Posiadanie pojedynczej kolumny dla nazwisk osób pracujących w tym dziale.

Teraz chcesz po prostu przedstawić wszystkie nazwy w jednym formularzu oddzielonym przecinkiem. W tym celu będziesz używać funkcji Listagg w następujący sposób.

Wybierz Listagg (nazwa, ',') z organizacji.It_Team

W wyjściu otrzymasz wszystkie wartości z kolumny nazwa w jednym rzędzie w postaci łańcucha.

Możesz więc zobaczyć, jak łatwo jest korzystać z funkcji Listagg i połączenie wierszy tabeli w przesunięciu ku czerwieni.

KASE CASE 2

Weźmy przypadek, w którym chcesz znaleźć wszystkich liderów zespołu pracujących nad różnymi projektami w Twojej organizacji. To, co masz, to tabela o nazwie dev_team który pokazuje wszystkie projekty i liderów zespołów w różnych kolumnach.

Teraz jest niewiele przypadków, w których jedna osoba pracuje jako lider zespołu więcej niż jeden projekt, ale po prostu chcesz wziąć każde nazwisko tylko raz. W tym celu musimy użyć ODRĘBNY Opcja dostępna z funkcją Listagg, aby zignorować powtarzane wartości.

Wybierz Listagg (odrębny team_lead, „|
z organizacji.dev_team

Widać, że na wynikach mamy wszystkich liderów naszego zespołu, a także nie ma powielania nazw, ponieważ użyliśmy ODRĘBNY opcja. Ponadto widać, że nazwa kolumny wyjściowej jest zmieniana na liderzy zespołów. Zamiast domyślnej nazwy kolumny w celu poprawy zrozumienia danych. Zastosowany tutaj ogranicznik jest symbolem rury do oddzielenia nazw prowadzenia.

Kazanie użycia 3

Załóżmy, że twój senior przypisał ci zadanie, aby znaleźć projekty pod każdym liderem zespołu i przedstawić je w jednym ciągu. Ponownie rozważmy dev_team tabela.

W przypadku relacji jeden do jednego między projektami a liderami zespołu to zadanie byłoby proste. W takim przypadku można zauważyć, że pod niektórymi liderami zespołu jest jeszcze więcej niż jeden projekt. W tym celu musisz utworzyć nowe zapytanie Redshift, jak pokazano poniżej.

Wybierz Team_Lead,
Listagg (Project_name, ',') jako projekty
z organizacji.dev_team
grupa według Team_Lead

W tym zapytaniu funkcja zagregowana jest stosowana do Nazwa Projektu kolumna. Ma również jeszcze jeden parametr używany do grupowania wyjścia funkcji do Zespół ołowiu kolumna.

Widać, że nasz wymagany cel został osiągnięty i jak skutecznie zorganizował wszystko doskonale. Z tego możesz łatwo zobaczyć, który lider zespołu obsługuje projekty w Twojej organizacji.

KASE CASE 4

We wszystkich poprzednich przykładach po prostu łączymy wiersze z pojedynczej kolumny tabeli. Ale teraz w tym przykładzie zobaczysz, że możemy nawet utworzyć jeden ciąg z wartości wielu wierszy i różnych kolumn.

Załóżmy, że podczas pracy w dziale sprzedaży dużej firmy otrzymujesz zadanie analizy szczegółów swoich klientów i wszystkich projektów podanych przez każdego klienta z czasem zakończenia projektów. Wszystkie te dane są obecne w pojedynczej tabeli bazy danych o nazwie Szczegóły Projektu mając trzy kolumny.

Utwórzmy zapytanie, aby osiągnąć pożądane dane wyjściowe za pomocą funkcji Listagg Redshift Listagg. Będziesz używać następującego zapytania, aby uzyskać pożądane dane wyjściowe:

wybierać
Nazwa klienta,
Listagg (projekty || „Zakończy się w„ || Completeion_Time, ”, ')
w grupie (zamówienie według nazwy_ klienta)
z organizacji.Szczegóły Projektu
grupa według nazwy_ klienta

Funkcja Listagg jest stosowana na dwóch kolumnach projektowanie I czas realizacji Za pomocą symbolu podwójnej rury. W jednym miejscu użyliśmy wyrażenia ukończy jako ogranicznik i przecinek dla drugiej pozycji. Wyjście jest uporządkowane w kolejności wstępnej alfabetycznej w odniesieniu do Nazwa klienta kolumna. Dane wyjściowe z powyższego zapytania Redshift będzie następujące:

Teraz możesz zobaczyć, że mamy nasze wyniki. Pokazuje każdy projekt z czasem trwania czasu i klienta, do którego należy.

Wniosek

Funkcja Listagg Redshift jest bardzo pomocna, jeśli chcesz przedstawić dane z wielu wierszy kolumny w jednym wierszu. Funkcja

[CC lang = ”Python” szerokie = ”100%” wysokość = ”100%” ECDAPAPE = ”true” tematy = „Blackboard” nowrap = ”0”] może przyjąć kilka atrybutów i może generować wyjście w różnych formach w razie potrzeby. Możesz tworzyć proste i złożone zapytania za pomocą tej funkcji.