Ostatnia aktualizacja: 1 października 2024
Czas czytania: 4 min
Spis treści

Co to jest STRING_AGG?

STRING_AGG to funkcja agregująca dostępna w Google BigQuery, która łączy wartości tekstowe z wielu wierszy w jeden ciąg. Pozwala to na tworzenie spójnych list lub stringów z wartościami pogrupowanych danych. W przeciwieństwie do funkcji CONCAT, która łączy tylko dwie wartości, STRING_AGG może łączyć wartości z wielu wierszy w ramach grupy.

W BigQuery, STRING_AGG może być używany z wartościami typu STRING lub BYTES. Funkcja ta przyjmuje dwa argumenty:

  • Wyrażenie tekstowe, które ma być agreguwane.
  • Opcjonalnie, separator, który zostanie użyty do oddzielania wartości w wynikowym ciągu. Jeśli separator nie zostanie podany, domyślnie używany jest przecinek („,”).

Zastosowanie STRING_AGG

STRING_AGG ma wiele zastosowań w analizie danych i przetwarzaniu zapytań w BigQuery. Oto kilka przykładów:

  • Tworzenie list wartości: STRING_AGG może być użyty do utworzenia listy wszystkich wartości z kolumny w ramach grupy. Na przykład, możesz użyć STRING_AGG do utworzenia listy wszystkich produktów, które zostały zakupione przez klienta.
  • Łączenie tekstów: STRING_AGG może być użyty do łączenia fragmentów tekstu z wielu wierszy w jeden ciąg. Na przykład, możesz użyć STRING_AGG do połączenia wszystkich komentarzy do artykułu w jeden ciąg.
  • Tworzenie spersonalizowanych komunikatów: STRING_AGG może być użyty do tworzenia spersonalizowanych komunikatów dla użytkowników na podstawie ich danych. Na przykład, możesz użyć STRING_AGG do utworzenia wiadomości e-mail z listą produktów, które użytkownik dodał do koszyka.

Przykład użycia w BigQuery

Załóżmy, że mamy tabelę o nazwie „orders” z następującymi kolumnami:

order_id customer_id product_name
1 101 Laptop
2 101 Myszka
3 102 Telefon
4 102 Słuchawki
5 101 Klawiatura

Chcemy uzyskać listę produktów dla każdego klienta. Możemy to zrobić za pomocą funkcji STRING_AGG:

SELECT
    customer_id,
    STRING_AGG(product_name, ', ') AS products
FROM
    `orders`
GROUP BY
    customer_id;

Wynik tego zapytania będzie wyglądał następująco:

customer_id products
101 Laptop, Myszka, Klawiatura
102 Telefon, Słuchawki

Najczęstsze błędy i sposoby ich unikania

Oto kilka typowych błędów, które mogą wystąpić podczas korzystania z STRING_AGG w BigQuery:

  • Nieprawidłowy typ danych: STRING_AGG działa tylko z wartościami typu STRING lub BYTES. Jeśli próbujesz użyć STRING_AGG z innym typem danych, otrzymasz błąd.
  • Przekroczenie limitu długości: STRING_AGG ma limit długości wynikowego ciągu. Jeśli długość ciągu przekroczy limit, otrzymasz błąd. Aby uniknąć tego błędu, możesz podzielić dane na mniejsze grupy lub użyć funkcji SUBSTR do obcięcia ciągu do żądanej długości.
  • Brak GROUP BY: STRING_AGG musi być używany w połączeniu z klauzulą GROUP BY. Jeśli nie użyjesz GROUP BY, otrzymasz błąd.

Optymalizacje i najlepsze praktyki

Oto kilka wskazówek dotyczących optymalizacji zapytań z użyciem STRING_AGG w BigQuery:

  • Użyj klauzulę ORDER BY: Jeśli chcesz, aby wartości w wynikowym ciągu były posortowane, użyj klauzulę ORDER BY w funkcji STRING_AGG.
  • Użyj DISTINCT: Jeśli chcesz uniknąć duplikatów w wynikowym ciągu, użyj DISTINCT w funkcji STRING_AGG.
  • Użyj funkcji SUBSTR: Jeśli wynikowy ciąg jest zbyt długi, użyj funkcji SUBSTR do obcięcia ciągu do żądanej długości.

Porównanie z innymi dialektami SQL

Funkcja STRING_AGG jest dostępna w wielu dialektach SQL, ale jej składnia może się różnić. Na przykład, w MySQL funkcja STRING_AGG jest nazywana GROUP_CONCAT, a w PostgreSQL jest nazywana string_agg. W BigQuery, STRING_AGG jest dostępny w standardowej składni SQL, co czyni go bardziej przenośnym.

Mimo że składnia może się różnić, funkcjonalność STRING_AGG jest zasadniczo taka sama we wszystkich dialektach SQL. W każdym przypadku funkcja ta służy do łączenia wartości tekstowych z wielu wierszy w jeden ciąg.

Udostępnij wpis
Newsletter

Zapisz się do Newslettera

Zapisując się, wyrażasz zgodę na przetwarzanie Twoich danych do celów marketingowych, zgodnie z naszą polityką prywatności.

Optymalizacja kosztów BigQuery

Poradnik

10 sposobów na optymalizację kosztów BigQuery
Looker Studio Dashoard

Poradnik

Looker Studio dla Początkujących – Co to jest Looker Studio i jak z niego korzystać?
Grafika prezentująca BigQuery

Tutorial

BigQuery dla początkujących. Jakie są sposoby przechowywania danych w BigQuery?
Google Search Console Dashboard

Dashboard analityczny

Dashboard analityczny SEO – Looker Studio
Grafika pokazująca 5 dobrych praktyk podczas tworzenia narzędzia Business Intelligence

Poradnik

Najlepsze praktyki tworzenia dashboardów analitycznych i biznesowych
Grafika pokazująca odwrócony proces ETL

Poradnik

Replikacja danych do BigQuery  – Jedyny przewodnik po procesach ETL i ELT w GCP jakiego potrzebujesz
Ikona plików cookies

Ustawienia plików cookies

Używamy plików cookies, aby zapewnić Ci najlepsze wrażenia z korzystania z naszej strony. Możesz wybrać, które pliki cookies chcesz zaakceptować.
Ikona plików cookies

Informacje o plikach cookies

Szanujemy Twoją prywatność

Używamy plików cookies lub podobnych technologii w celu zapewnienia Ci dostępu do serwisu, usprawniania jego działania, profilowania i wyświetlania treści dopasowanych do Twoich potrzeb. W każdej chwili możesz zmienić ustawienia plików cookies lub podobnych technologii poprzez zmianę ustawień prywatności w przeglądarce bądź aplikacji lub zmianę swoich preferencji w zakładce Ustawienia cookies w stopce strony. Pamiętaj, że zmiana ta może spowodować brak dostępu do niektórych funkcji serwisu.
Dane osobowe dotyczące korzystania z serwisu, w tym zapisywane i odczytywane z plików cookies lub podobnych technologii będą przetwarzane w celu zapewnienia dostępu do serwisu, w celach marketingowych, w tym profilowania, w celach wewnętrznych związanych ze świadczeniem usług oraz prowadzeniem działalności gospodarczej, w tym dowodowych, analitycznych i statystycznych, wykrywania i eliminowania nadużyć oraz w celu wykonywania obowiązków wynikających z przepisów prawa.
Przysługuje Ci prawo do dostępu do danych, ich usunięcia, ograniczenia przetwarzania, przenoszenia, sprzeciwu, sprostowania oraz cofnięcia zgód w każdym czasie. Szczegółowe informacje dotyczące przetwarzania danych oraz przysługujących Ci uprawnień, informacje dotyczące plików cookies lub podobnych technologii, w tym dotyczące możliwości zarządzania ustawieniami prywatności, znajdują się w Polityce Prywatności.