Por motivos de privacidade, restringimos as funções SQL que pode usar no ADH.
Funções escalares
São permitidas todas as funções escalares, exceto as seguintes:
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álise
Para consultas de análise agregadas, restringimos funções que combinam dados de vários utilizadores. São permitidas todas as funções analíticas e de agregação no tratamento de dados de um único utilizador. Consulte Agregações ao nível do utilizador abaixo para ver mais detalhes.
Funções de agregação
Função | Permitido? |
---|---|
ANY_VALUE |
Sim |
APPROX_QUANTILES |
Não |
APPROX_TOP_COUNT |
Não |
APPROX_TOP_SUM |
Não |
ARRAY_AGG |
Não |
ARRAY_CONCAT_AGG |
Não |
AVG |
Sim |
BIT_AND |
Não |
BIT_OR |
Não |
BIT_XOR |
Não |
COUNT |
Sim |
COUNTIF |
Sim |
LOGICAL_AND |
Sim |
LOGICAL_OR |
Sim |
MAX |
Sim |
MIN |
Sim |
SUM |
Sim |
CORR |
Sim |
COVAR_POP |
Sim |
COVAR_SAMP |
Sim |
STDDEV_POP |
Sim |
STDDEV_SAMP |
Sim |
STDDEV |
Sim |
STRING_AGG |
Não |
VAR_POP |
Sim |
VAR_SAMP |
Sim |
VARIANCE |
Sim |
APPROX_COUNT_DISTINCT |
Sim |
Funções analíticas
Estão restritas todas as funções analíticas.
Funções HyperLogLog++
O Ads Data Hub suporta funções HyperLogLog++ (HLL++). No entanto, estas usam tipos de dados especializados com mais limitações.
Tipos suportados
Tipo | Descrição |
---|---|
ADH.USER_HLL |
Um esboço agregado de valores do tipo ADH.USER_ID |
ADH.BYTE_HLL |
Um esboço agregado de valores do tipo diferente de ID |
Estes tipos suportam a união e a extração para fazer estimativas de cardinalidade, mas não suportam a conversão direta em nenhum outro tipo. Não podem ser exportados diretamente do Ads Data Hub, pelo que têm de usar HLL_COUNT.EXTRACT
ou HLL_COUNT.MERGE
antes de chegar ao resultado da consulta.
Os esboços HLL possibilitam as estimativas de cardinalidade em várias camadas de agregação. No entanto, tenha em atenção que, no Ads Data Hub, tais esboços não oferecem uma melhoria de desempenho substancial em relação a COUNT(DISTINCT)
numa única camada.
Funções suportadas
Nome da função | Tipos suportados | Tipo devolvido |
---|---|---|
HLL_COUNT.EXTRACT
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.INIT
|
Todos os tipos
suportados padrão,
ADH.USER_ID |
ADH.USER_HLL para entrada de
ADH.USER_ID ,
caso contrário, 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 ao tipo de entrada |
Limitações
Injeção de ruído: as funções HLL++ não são suportadas quando se usa a injeção de ruído para executar uma consulta.
Agregações ao nível do utilizador
São permitidas todas as funções analíticas e de agregação em declarações SELECT
que agrupam
ou separam por user_id
. Para que tal funcione, as junções anteriores têm de deixar
claro que os dados são mantidos ao nível do utilizador nas junções em user_id
, conforme
o seguinte exemplo:
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_clicks
USING(query_id, user_id)
GROUP BY user_id)
Consultas da lista de utilizadores
Nas consultas da lista de utilizadores, são permitidas funções de agregação e as funções analíticas não são suportadas.