Dozwolone funkcje SQL

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.