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:
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á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.