Preciso responder a seguinte pergunta:
Qual é o número médio de envios de e-mail que leva antes que um cliente abra um e-mail? Eu sei que preciso contar o número de linhas entre cada Open_Date para obter o número de envios de email entre cada abertura. Percebo que preciso adicionar a função row_number () para isso, mas não consigo chegar à coluna desejada na minha segunda captura de tela.
Algo a ter em mente, precisarei obter um "CounttilOpens" médio por endereço de e-mail. No meu exemplo abaixo, tenho dois endereços de e-mail diferentes e suas respectivas datas de envio e abertura e preciso que a consulta funcione de forma independente para cada endereço de e-mail.
Meus dados estão estruturados da seguinte forma:
Preciso de uma consulta que me ajude a obter uma nova coluna como esta que reinicia para cada endereço de e-mail e para cada intervalo de datas abertas:
Este é um tipo de problema de lacunas e ilhas. Existem muitas soluções diferentes.
Como
COUNT(SomeValue)
contará apenas valores não nulos, você pode usar uma contagem em janela para calcular um ID de agrupamento para cada ilha.Subtraímos 1 para cada linha que não é nula, para mantê-la como parte do grupo anterior
Em seguida, usamos outra janela
COUNT
para obter o resultado final, desta vez particionando também pelo ID do grupo.