ROW_NUMBER() com Desempate Determinístico
Torne a deduplicação determinística quando o timestamp principal puder empatar.
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.
Duas ou mais linhas podem compartilhar o mesmo critério principal de ordenação.
Migração ou reconciliação precisa produzir o mesmo vencedor em toda execução.
SELECT
SubscriberKey,
EmailAddress,
ModifiedDate,
RecordID
FROM (
SELECT
SubscriberKey,
EmailAddress,
ModifiedDate,
RecordID,
ROW_NUMBER() OVER (
PARTITION BY SubscriberKey
ORDER BY ModifiedDate DESC, RecordID DESC
) AS rn
FROM [Source_DE]
) ranked
WHERE rn = 1ROW_NUMBER precisa de uma ordenação total dentro de cada partição. Uma segunda chave de ordenação estável remove a ambiguidade quando o timestamp principal empata.
O tie-breaker precisa ser significativo e estável; troque RecordID por um campo real e determinístico do seu modelo.
Se os dois campos do ORDER BY puderem empatar, o resultado ainda pode ser não determinístico.
Não use NEWID() como desempate quando você precisa de vencedores repetíveis.