SQL // avançadoPRODUÇÃO

Defina o Grain Antes da Sintaxe do JOIN

Evite multiplicação acidental de linhas em queries de tracking.

Context Pack →Abrir Workspace →
Trust & provenancePRODUCTION
Nível de evidênciaPRODUCTIONFontes oficiais2Outras fontes0Última verificação2026-10-05

O nível de evidência descreve minha experiência com o conteúdo. Fonte oficial descreve contrato/documentação da plataforma. Observação de produção não deve ser tratada automaticamente como limite oficial.

A maioria dos problemas do tipo “minha contagem explodiu” é problema de grain. Defina o que uma linha representa em cada fonte antes de escrever o JOIN.

EvidênciaPRODUÇÃO
Dificuldadeavançado
Verificado2026-10-05
Regras operacionais
01

Descreva em linguagem simples o grain de cada fonte.

02

Faça JOIN usando a chave completa exigida pelo relacionamento do evento.

03

Pré-agregue fontes de evento many-to-many antes de combiná-las.

04

Use IsUnique apenas quando ele representar exatamente a métrica desejada.

Multiplicação clássica

Fazer JOIN direto entre _Open e _Click apenas por SubscriberKey pode multiplicar linhas porque um mesmo subscriber pode ter vários opens e vários clicks. Agregar só depois da multiplicação pode esconder o sintoma e ainda deixar a query cara.

Padrão mais seguro

Pré-agregue cada fonte de evento no grain que você precisa e só então faça JOIN dos resultados menores.

/* Stage 1: one row per subscriber */
SELECT
  SubscriberKey,
  MAX(EventDate) AS LastOpenDate
FROM _Open
WHERE IsUnique = 1
GROUP BY SubscriberKey

/* Stage 2: repeat for clicks, then join the staged DEs */

Chaves de tracking de email

Para logs de envio e joins de tracking em nível de subscriber, a orientação da Salesforce costuma utilizar JobID, ListID, BatchID e SubscriberID em conjunto quando aplicável.

Snippets relacionados
Fontes / verificação