Aus Datenschutzgründen beschränken wir die SQL-Funktionen, die Sie in ADH verwenden können.
Skalarfunktionen
Alle skalaren Funktionen mit Ausnahme der folgenden sind zulässig:
ERROR
ST_AREA
ST_ASBINARY
ST_ASGEOJSON
ST_ASTEXT
ST_BOUNDARY
ST_CENTROID
ST_CENTROID_AGG
ST_CLOSESTPOINT
ST_CLUSTERDBSCAN
ST_CONTAINS
ST_CONVEXHULL
ST_COVEREDBY
ST_COVERS
ST_DIFFERENCE
ST_DIMENSION
ST_DISJOINT
ST_DISTANCE
ST_DUMP
ST_DWITHIN
ST_EQUALS
ST_GEOGFROMGEOJSON
ST_GEOGFROMTEXT
ST_GEOGFROMWKB
ST_GEOGPOINT
ST_GEOGPOINTFROMGEOHASH
ST_GEOHASH
ST_INTERSECTION
ST_INTERSECTS
ST_INTERSECTSBOX
ST_ISCOLLECTION
ST_ISEMPTY
ST_LENGTH
ST_MAKELINE
ST_MAKEPOLYGON
ST_MAKEPOLYGONORIENTED
ST_MAXDISTANCE
ST_NPOINTS
ST_NUMPOINTS
ST_PERIMETER
ST_SIMPLIFY
ST_SNAPTOGRID
ST_TOUCHES
ST_UNION
ST_UNION_AGG
ST_WITHIN
ST_X
ST_Y
Analyseabfragen
Bei aggregierten Analyseabfragen schränken wir Funktionen ein, bei denen Daten von mehreren Nutzern kombiniert werden. Bei der Verarbeitung einzelner Nutzerdaten sind alle Aggregat- und Analysefunktionen zulässig. Weitere Informationen finden Sie unten im Abschnitt Aggregationen auf Nutzerebene.
Aggregatfunktionen
Funktion | Zulässig? |
---|---|
ANY_VALUE |
Ja |
APPROX_QUANTILES |
Nein |
APPROX_TOP_COUNT |
Nein |
APPROX_TOP_SUM |
Nein |
ARRAY_AGG |
Nein |
ARRAY_CONCAT_AGG |
Nein |
AVG |
Ja |
BIT_AND |
Nein |
BIT_OR |
Nein |
BIT_XOR |
Nein |
COUNT |
Ja |
COUNTIF |
Ja |
LOGICAL_AND |
Ja |
LOGICAL_OR |
Ja |
MAX |
Ja |
MIN |
Ja |
SUM |
Ja |
CORR |
Ja |
COVAR_POP |
Ja |
COVAR_SAMP |
Ja |
STDDEV_POP |
Ja |
STDDEV_SAMP |
Ja |
STDDEV |
Ja |
STRING_AGG |
Nein |
VAR_POP |
Ja |
VAR_SAMP |
Ja |
VARIANCE |
Ja |
APPROX_COUNT_DISTINCT |
Ja |
Analysefunktionen
Alle Analysefunktionen sind eingeschränkt.
Zusammenfassungen auf Nutzerebene
Wir erlauben alle aggregierten und Analysefunktionen in SELECT
-Anweisungen, die nach user_id
gruppieren oder partitionieren. Damit dies funktioniert, müssen alle vorherigen Joins deutlich machen, dass die Daten auf Nutzerebene bleiben. Dazu wird user_id
verwendet, wie in diesem Beispiel:
SELECT ARRAY_AGG(campaign_id ORDER BY query_id.time_usec) AS path
FROM
adh.google_ads_impressions
LEFT JOIN adh.google_ads_clicks USING(query_id, user_id)
GROUP BY user_id
Wenn dies nicht möglich ist, weil die IDs getrennt sind und nicht verknüpft werden, sollte die Abfrage nach allen unabhängigen IDs gruppieren oder partitionieren. Hier ein Beispiel:
SELECT
a.user_id AS user_a,
b.user_id AS user_b,
ARRAY_AGG(DISTINCT campaign_id) campaigns
FROM
adh.google_ads_impressions a
JOIN adh.google_ads_impressions b USING (campaign_id)
GROUP BY 1, 2
Suchanfragen in der Nutzerliste
In Nutzerlistenabfragen sind Aggregatfunktionen zulässig und Analysefunktionen werden nicht unterstützt.