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

Co to jest ARRAY_AGG?

ARRAY_AGG to funkcja agregująca w SQL, która łączy wartości z wielu wierszy w tablicę. W BigQuery służy do grupowania wartości z kolumny w jedną tablicę, co jest przydatne w wielu scenariuszach analizy danych. W przeciwieństwie do funkcji agregujących, takich jak SUM czy AVG, które zwracają pojedynczą wartość, ARRAY_AGG zwraca tablicę wartości.

Zastosowanie ARRAY_AGG

ARRAY_AGG w BigQuery ma szerokie zastosowanie w analizie danych i przetwarzaniu zapytań:

  • Grupowanie powiązanych wartości: ARRAY_AGG może być używany do grupowania wartości z różnych wierszy, które są ze sobą powiązane. Na przykład, można go użyć do zebrania wszystkich produktów zakupionych przez danego klienta.
  • Tworzenie list rozwijanych: ARRAY_AGG może być używany do tworzenia list rozwijanych lub innych struktur danych, które wymagają wielu wartości.
  • Przygotowywanie danych do analizy: ARRAY_AGG może być używany do przygotowywania danych do dalszej analizy. Na przykład, można go użyć do zebrania wszystkich dat transakcji dla danego klienta, a następnie obliczyć średnią datę transakcji.
  • Uproszczona agregacja: ARRAY_AGG może być używany do uproszczenia zapytań, które w przeciwnym razie wymagałyby użycia podzapytań lub innych złożonych konstrukcji.

Przykład użycia w BigQuery

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

order_id customer_id product_name
1 10 Laptop
2 10 Telefon
3 20 Tablet
4 20 Słuchawki

Aby uzyskać listę produktów zakupionych przez każdego klienta, możemy użyć funkcji ARRAY_AGG w następujący sposób:


SELECT
customer_id,
ARRAY_AGG(product_name) AS purchased_products
FROM
`your_project.your_dataset.orders`
GROUP BY
customer_id

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

customer_id purchased_products
10 [Laptop, Telefon]
20 [Tablet, Słuchawki]

Najczęstsze błędy i sposoby ich unikania

Najczęstsze błędy związane z ARRAY_AGG w BigQuery:

  • Niepoprawne użycie klauzul GROUP BY: Aby użyć ARRAY_AGG, należy zgrupować dane według kolumny, która ma być agregowana. Jeśli nie zostanie użyta klauzula GROUP BY, funkcja ARRAY_AGG zwróci błąd.
  • Użycie ARRAY_AGG na kolumnie, która nie jest w grupie: Nie można użyć ARRAY_AGG na kolumnie, która nie jest zgrupowana. Na przykład, nie można użyć ARRAY_AGG na kolumnie „order_id” w powyższym przykładzie, ponieważ nie jest ona zgrupowana według „customer_id”.
  • Ograniczenia rozmiaru tablicy: BigQuery ma ograniczenia dotyczące rozmiaru tablic, które można zwracać w wyniku zapytania. Jeśli tablica jest zbyt duża, zapytanie może zakończyć się błędem.

Aby uniknąć tych błędów:

  • Zawsze używaj klauzul GROUP BY: Upewnij się, że używasz klauzul GROUP BY, aby zgrupować dane według kolumny, która ma być agregowana.
  • Używaj ARRAY_AGG tylko na kolumnach w grupie: Nie używaj ARRAY_AGG na kolumnach, które nie są w grupie.
  • Używaj funkcji LIMIT: Jeśli spodziewasz się dużych tablic, użyj funkcji LIMIT, aby ograniczyć liczbę wierszy, które są agregowane.

Optymalizacje i najlepsze praktyki

Aby zoptymalizować zapytania z użyciem ARRAY_AGG w BigQuery:

  • Użyj funkcji DISTINCT: Jeśli chcesz uniknąć powtarzania wartości w tablicy, użyj funkcji DISTINCT w argumencie ARRAY_AGG.
  • Użyj funkcji ORDER BY: Jeśli chcesz uporządkować wartości w tablicy, użyj funkcji ORDER BY w argumencie ARRAY_AGG.
  • Użyj funkcji LIMIT: Jeśli chcesz ograniczyć liczbę wartości w tablicy, użyj funkcji LIMIT w argumencie ARRAY_AGG.
  • Zoptymalizuj klauzulę GROUP BY: Upewnij się, że klauzula GROUP BY jest zoptymalizowana pod kątem wydajności.

Porównanie z innymi dialektami SQL

Funkcja ARRAY_AGG jest dostępna w wielu dialektach SQL, ale jej implementacja może się różnić. Na przykład, w PostgreSQL funkcja ARRAY_AGG jest dostępna pod nazwą „array_agg”. W innych dialektach SQL, takich jak MySQL, funkcja ARRAY_AGG może nie być dostępna. W takich przypadkach można użyć innych funkcji agregujących, takich jak GROUP_CONCAT.

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.