Por motivos de privacidad, restringimos las funciones de SQL que puedes usar en ADH.
Funciones escalares
Se permiten todas las funciones escalares, excepto las siguientes:
ERRORST_AREAST_ASBINARYST_ASGEOJSONST_ASTEXTST_BOUNDARYST_CENTROIDST_CENTROID_AGGST_CLOSESTPOINTST_CLUSTERDBSCANST_CONTAINSST_CONVEXHULLST_COVEREDBYST_COVERSST_DIFFERENCEST_DIMENSIONST_DISJOINTST_DISTANCEST_DUMPST_DWITHINST_EQUALSST_GEOGFROMGEOJSONST_GEOGFROMTEXTST_GEOGFROMWKBST_GEOGPOINTST_GEOGPOINTFROMGEOHASHST_GEOHASHST_INTERSECTIONST_INTERSECTSST_INTERSECTSBOXST_ISCOLLECTIONST_ISEMPTYST_LENGTHST_MAKELINEST_MAKEPOLYGONST_MAKEPOLYGONORIENTEDST_MAXDISTANCEST_NPOINTSST_NUMPOINTSST_PERIMETERST_SIMPLIFYST_SNAPTOGRIDST_TOUCHESST_UNIONST_UNION_AGGST_WITHINST_XST_Y
Consultas de análisis
En el caso de las consultas de análisis agregado, restringimos las funciones que combinan datos de varios usuarios. Se permiten todas las funciones agregadas y analíticas cuando se procesan los datos de un solo usuario. Consulta Agregaciones a nivel del usuario a continuación para obtener detalles.
Funciones de agregación
| Función | ¿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.
Funciones HyperLogLog++
El Centro de Datos de Anuncios admite funciones HyperLogLog++ (HLL++). Sin embargo, usan tipos de datos especializados con más limitaciones.
Tipos admitidos
| Tipo | Descripción |
|---|---|
ADH.USER_HLL |
Un boceto agregado a partir de valores de tipo ADH.USER_ID |
ADH.BYTE_HLL |
Un boceto agregado a partir de valores de cualquier tipo que no sea de ID |
Estos tipos admiten la combinación y extracción de estimaciones de cardinalidad, y no admiten la conversión directa a ningún otro tipo. No se pueden exportar directamente desde el CDA, por lo que deben usar HLL_COUNT.EXTRACT o HLL_COUNT.MERGE antes de llegar al resultado de la consulta.
Los esbozos de HLL permiten la estimación de cardinalidad en varias capas de agregación, pero ten en cuenta que, en el Centro de Datos de Anuncios, no proporcionan una mejora sustancial del rendimiento en comparación con COUNT(DISTINCT) en una sola capa.
Funciones compatibles
| Nombre de la función | Tipos admitidos | Tipo de datos que se muestra |
|---|---|---|
HLL_COUNT.EXTRACT
|
ADH.USER_HLL,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.INIT
|
Todos los tipos compatibles estándar,ADH.USER_ID |
ADH.USER_HLL para la entrada ADH.USER_ID, de lo contrario, ADH.BYTE_HLL |
HLL_COUNT.INITNT.MERGE
|
ADH.USER_HLL,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.MERGE_PARTIAL
|
ADH.USER_HLL,
ADH.BYTE_HLL |
Igual que el tipo de entrada |
Limitaciones
Inyección de ruido: Las funciones HLL++ no son compatibles cuando se ejecuta una consulta con inyección de ruido.
Agregaciones a nivel del usuario
Permitimos todas las funciones analíticas y de agregación en las sentencias SELECT que agrupan o particionan por user_id. Para que esto funcione, cualquier unión anterior debe dejar
claro que los datos se mantienen a nivel del usuario uniéndose en user_id, como en
este ejemplo:
CREATE TABLE paths AS (
SELECT ARRAY_AGG(campaign_id ORDER BY query_id.time_usec) AS path
FROM
adh.google_ads_impressions
LEFT JOIN adh.google_ads_creative_conversions
USING(query_id, user_id)
GROUP BY user_id)
Consultas de listas de usuarios
En las consultas de la lista de usuarios, se permiten las funciones de agregación y no se admiten las funciones analíticas.