Kategorie: Aggregation

COLLECT

COLLECT sammelt die Werte einer Spalte je Gruppe in einem Array; mit DISTINCT nur die verschiedenen Werte.

Syntax

COLLECT(column_name) | COLLECT(DISTINCT column_name)

Besonderheiten in AMC

  • Ohne DISTINCT bleiben Duplikate erhalten. Nullwerte werden in beiden Fällen berücksichtigt.
  • COLLECT_SORTED liefert dasselbe sortiert in einem Schritt, statt COLLECT gefolgt von ARRAY_SORT.
  • Das Array eignet sich für Pfadanalysen, etwa die Reihenfolge der Werbeprodukte je Nutzer, in einer CTE.

Beispiel

Wie viele Werbeprodukte pro Nutzer vorkamen. Die user_id bleibt in der CTE und wird im Ergebnis nur gezählt.

WITH paths AS (
  SELECT
    user_id,
    COLLECT(DISTINCT ad_product_type) AS products
  FROM
    sponsored_ads_traffic
  GROUP BY
    1
)
SELECT
  CARDINALITY(products) AS product_types,
  COUNT(DISTINCT user_id) AS users
FROM
  paths
GROUP BY
  1

Gegen das AMC-Schema geprüft, nicht auf einer AMC-Instanz ausgeführt.

Verwandte Funktionen: CARDINALITY, EXPLODE, ARRAY_CONTAINS

Quelle: advertising.amazon.com (abgerufen am 2026-10-09)