Zapytanie o liczbę odrębnych wartości w zakresie dat walcowania

Mam zestaw danych adresów e-mail i daty dodania tych adresów e-mail do tabeli. Może istnieć wiele wpisów adresu e-mail dla różnych dat. Na przykład, jeśli mam dane ustawione poniżej. Chciałbym uzyskać datę i liczbę różnych e-maili, które mamy między tą datą a 3 dniami temu.

<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>

Zestaw wyników wyglądałby mniej więcej tak, gdybyśmy używali okresu daty 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>

Za pomocą poniższego zapytania mogę uzyskać wyraźną liczbę zakresów dat, ale chcę uzyskać liczbę zakresów w ciągu dnia, więc nie muszę ręcznie aktualizować zakresu dla setek dat.

<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>

Pomoc jest doceniana.

questionAnswers(4)

yourAnswerToTheQuestion