Tengo un conjunto de datos de direcciones de correo electrónico y las fechas en que esas direcciones de correo electrónico se agregaron a una tabla. Puede haber varias entradas de una dirección de correo electrónico para varias fechas diferentes. Por ejemplo, si tengo el conjunto de datos a continuación. Me gustaría obtener la fecha y el recuento de distintos correos electrónicos que tenemos entre dicha fecha y 3 días atrás.Consulta para el recuento de valores distintos en un intervalo de fechas variable
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]
conjunto de resultados se vería algo como esto si usamos un período de fecha de 3
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
puedo conseguir un recuento distinto de un intervalo de fechas utilizando la consulta a continuación, pero que buscan obtener un recuento de un rango por día, así que no tengo que actualizar manualmente el rango para cientos de fechas.
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;
Ayuda es apreciada.
Esto se denomina PostgreSQL. No función 'convert()' aquí. (Bueno, hay una función 'convert()', pero es para convertir codificaciones, no tipos de datos como en SQL server.) Además, se desalientan las firmas, tu estilo en la parte inferior derecha se ocupa de eso. Ver [aquí] (http://meta.stackexchange.com/questions/5029/are-taglines-signatures-disallowed) o [aquí] (http://stackoverflow.com/faq#signatures). –