Consulta para contagem de valores distintos em um intervalo de datas rotativo
Eu tenho um conjunto de dados de endereços de email e datas em que esses endereços de email foram adicionados a uma tabela. Pode haver várias entradas de um endereço de e-mail para várias datas diferentes. Por exemplo, se eu tiver o conjunto de dados abaixo. Eu estaria procurando obter a data e a contagem de e-mails distintos que temos entre essa data e três dias atrás.
<code>Date | email -------+---------------- 1/1/12 | [email protected] 1/1/12 | [email protected] 1/1/12 | [email protected] 1/2/12 | [email protected] 1/2/12 | [email protected] 1/3/12 | [email protected] 1/4/12 | [email protected] 1/5/12 | [email protected] 1/5/12 | [email protected] 1/6/12 | [email protected] 1/6/12 | [email protected] 1/6/12 | [email protected] </code>
O conjunto de resultados seria semelhante a este se usarmos um período de data de 3
<code>date | count(distinct email) -------+------ 1/1/12 | 3 1/2/12 | 3 1/3/12 | 3 1/4/12 | 3 1/5/12 | 2 1/6/12 | 2 </code>
Posso obter uma contagem distinta de um período usando a consulta abaixo, mas procurando obter uma contagem de um intervalo por dia, por isso não preciso atualizar manualmente o intervalo para centenas de datas.
<code>select test.date, count(distinct test.email) from test_table as test where test.date between '2012-01-01' and '2012-05-08' group by test.date; </code>
Ajuda é apreciada.