Kategorie: Arrays
ARRAY_INTERSECT
ARRAY_INTERSECT liefert ein neues Array mit den Elementen, die in beiden Eingabe-Arrays vorkommen.
Syntax
ARRAY_INTERSECT(array1, array2)Besonderheiten in AMC
- Die Schwestern ARRAY_UNION (alle Elemente ohne Duplikate) und ARRAY_COMPLEMENT (Elemente nur im ersten Array) lösen verwandte Mengenaufgaben.
- In Verbindung mit CARDINALITY lässt sich die Größe der Schnittmenge zählen.
Beispiel
Nutzer, bei denen derselbe Kampagnenname in Sponsored Ads und in der DSP vorkommt.
WITH per_user AS (
SELECT
user_id,
COLLECT(DISTINCT campaign) AS paid_campaigns
FROM
sponsored_ads_traffic
GROUP BY
1
),
dsp AS (
SELECT
user_id,
COLLECT(DISTINCT campaign) AS dsp_campaigns
FROM
dsp_impressions
GROUP BY
1
)
SELECT
COUNT(DISTINCT p.user_id) AS users_in_both
FROM
per_user p
JOIN dsp d ON p.user_id = d.user_id
WHERE
CARDINALITY(ARRAY_INTERSECT(p.paid_campaigns, d.dsp_campaigns)) > 0 Gegen das AMC-Schema geprüft, nicht auf einer AMC-Instanz ausgeführt.