Por motivos de privacidad, restringimos las funciones de SQL que puedes usar en el CDA.
Funciones escalares
Se permiten todas las funciones escalares, excepto las siguientes:
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
Consultas de análisis
Para las consultas de análisis agregadas, restringimos las funciones que combinan datos de varios usuarios. Todas las funciones analíticas y agregadas se permiten cuando se procesan datos de un solo usuario. Consulta Agregaciones a nivel del usuario a continuación para obtener más detalles.
Funciones de agregación
Function | ¿Se permite? |
---|---|
ANY_VALUE |
Sí |
APPROX_QUANTILES |
No |
APPROX_TOP_COUNT |
No |
APPROX_TOP_SUM |
No |
ARRAY_AGG |
No |
ARRAY_CONCAT_AGG |
No |
AVG |
Sí |
BIT_AND |
No |
BIT_OR |
No |
BIT_XOR |
No |
COUNT |
Sí |
COUNTIF |
Sí |
LOGICAL_AND |
Sí |
LOGICAL_OR |
Sí |
MAX |
Sí |
MIN |
Sí |
SUM |
Sí |
CORR |
Sí |
COVAR_POP |
Sí |
COVAR_SAMP |
Sí |
STDDEV_POP |
Sí |
STDDEV_SAMP |
Sí |
STDDEV |
Sí |
STRING_AGG |
No |
VAR_POP |
Sí |
VAR_SAMP |
Sí |
VARIANCE |
Sí |
APPROX_COUNT_DISTINCT |
Sí |
Funciones analíticas
Todas las funciones analíticas están restringidas.
Agregaciones a nivel del usuario
Permitimos todas las funciones de agregación y analítica en declaraciones SELECT
que agrupan o particionan por user_id
. Para que esto funcione, cualquier combinación anterior debe aclarar que los datos se mantienen a nivel del usuario mediante una unión en user_id
, como en este ejemplo:
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
Si esto no es posible porque los ID son independientes y no se unen, la consulta debe agrupar o particionar por todos los ID independientes, como en este ejemplo:
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
Consultas de lista de usuarios
En las consultas de listas de usuarios, se permiten las funciones de agregación y no se admiten las funciones analíticas.