Povolené funkce SQL

Kvůli ochraně soukromí umožňujeme ve službě Ads Data Hub používat pouze některé funkce jazyka SQL.

Skalární funkce

Povoleny jsou všechny skalární funkce kromě těchto:

  • 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

Analytické dotazy

U agregovaných analytických dotazů omezujeme funkce, které kombinují data od různých uživatelů. Při zpracování dat od jednoho uživatele jsou povoleny všechny agregační a analytické funkce. Podrobnosti viz oddíl Agregace na úrovni uživatele níže.

Agregační funkce

Funkce Povoleno?
ANY_VALUE Ano
APPROX_QUANTILES Ne
APPROX_TOP_COUNT Ne
APPROX_TOP_SUM Ne
ARRAY_AGG Ne
ARRAY_CONCAT_AGG Ne
AVG Ano
BIT_AND Ne
BIT_OR Ne
BIT_XOR Ne
COUNT Ano
COUNTIF Ano
LOGICAL_AND Ano
LOGICAL_OR Ano
MAX Ano
MIN Ano
SUM Ano
CORR Ano
COVAR_POP Ano
COVAR_SAMP Ano
STDDEV_POP Ano
STDDEV_SAMP Ano
STDDEV Ano
STRING_AGG Ne
VAR_POP Ano
VAR_SAMP Ano
VARIANCE Ano
APPROX_COUNT_DISTINCT Ano

Analytické funkce

Všechny analytické funkce jsou omezeny.

Agregace na úrovni uživatele

V příkazech SELECT, které provádějí sdružování nebo rozdělování podle user_id, povolujeme všechny agregační a analytické funkce. K jejich správné funkci je nutno, aby všechna předchozí spojení jasně uváděla, že jsou data uchovávána na úrovni uživatele. To lze udělat spojením podle user_id, jak ukazuje tento příklad:

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

Pokud to není možné, protože jsou ID oddělená a nelze je spojit, měl by dotaz provádět sdružování nebo rozdělování podle všech nezávislých ID, například takto:

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

Dotazy na seznam uživatelů

V dotazech na seznam uživatelů jsou agregační funkce povoleny, analytické funkce však podporovány nejsou.