Ze względu na ochronę prywatności ograniczamy dostęp do funkcji SQL w CDR.
Funkcje skalarne
Wszystkie funkcje skalarne oprócz tych są dozwolone:
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
Zapytania o analizę
W przypadku zapytań analiz zbiorczych ograniczamy dostęp do funkcji, które łączą dane od wielu użytkowników. Podczas przetwarzania danych pojedynczego użytkownika dozwolone są wszystkie funkcje zbiorcze i analityczne. Więcej informacji znajdziesz poniżej w sekcji Agregacje na poziomie użytkownika.
Funkcje zbiorcze
Funkcja | Dozwolone? |
---|---|
ANY_VALUE |
Tak |
APPROX_QUANTILES |
Nie |
APPROX_TOP_COUNT |
Nie |
APPROX_TOP_SUM |
Nie |
ARRAY_AGG |
Nie |
ARRAY_CONCAT_AGG |
Nie |
AVG |
Tak |
BIT_AND |
Nie |
BIT_OR |
Nie |
BIT_XOR |
Nie |
COUNT |
Tak |
COUNTIF |
Tak |
LOGICAL_AND |
Tak |
LOGICAL_OR |
Tak |
MAX |
Tak |
MIN |
Tak |
SUM |
Tak |
CORR |
Tak |
COVAR_POP |
Tak |
COVAR_SAMP |
Tak |
STDDEV_POP |
Tak |
STDDEV_SAMP |
Tak |
STDDEV |
Tak |
STRING_AGG |
Nie |
VAR_POP |
Tak |
VAR_SAMP |
Tak |
VARIANCE |
Tak |
APPROX_COUNT_DISTINCT |
Tak |
Funkcje analityczne
Wszystkie funkcje analityczne są objęte ograniczeniami.
Agregacja na poziomie użytkownika
Dopuszczamy wszystkie funkcje zbiorcze i analityczne w instrukcjach SELECT
, które grupują lub partycjonują według user_id
. Aby opcja ta działała, każde poprzednie połączenie musi zawierać wyraźną informację o zachowaniu danych na poziomie użytkownika przez dołączenie na stronie user_id
, jak w tym przykładzie:
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
Jeśli nie jest to możliwe, ponieważ identyfikatory są oddzielne i nie są połączone, zapytanie powinno grupować lub dzielić według wszystkich niezależnych identyfikatorów, jak w tym przykładzie:
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
Zapytania dotyczące listy użytkowników
W zapytaniach o listy użytkowników dozwolone są funkcje zbiorcze, a funkcje analityczne nie są obsługiwane.