Estoy usando SQL Server 2008.¿Cómo consultar para obtener totales de los últimos siete días?
Quiero escribir una consulta que me da actividad total durante varios días. Específicamente, quiero contar el total de votos por día durante los últimos siete días.
Mi mesa se ve así:
VoteID --- VoteDate -------------- Vote --- BikeID
1 2012-01-01 08:24:25 1 1234
2 2012-01-01 08:24:25 0 5678
3 2012-01-02 08:24:25 1 1289
4 2012-01-03 08:24:25 0 1234
5 2012-01-04 08:24:25 1 5645
6 2012-01-05 08:24:25 0 1213
7 2012-01-06 08:24:25 1 1234
8 2012-01-07 08:24:25 0 1125
necesito mis resultados a tener este aspecto
VoteDate ---- Total
2012-01-01 5
2012-01-02 6
2012-01-03 7
2012-01-04 1
2012-01-05 3
Mi pensamiento es que tengo que hacer algo como esto:
SELECT SUM(CASE WHEN Vote = 1 THEN 1 ELSE 0 END) AS Total
FROM Votes
GROUP BY VoteDate
Esta consulta no funciona porque cuenta solo los votos que ocurrieron (casi exactamente) al mismo tiempo. Por supuesto, quiero ver solo un día específico. ¿Cómo hago que esto suceda?
Para añadir a la respuesta de Eric, es posible que también desee agregar una cláusula WHERE para recuperar primeros datos por sólo el pasado 7 (o N) días. De lo contrario, realizaría la operación AGRUPACIÓN en el conjunto completo (que podría ser muy grande) y luego obtendría solo los últimos 7 (o N) días de datos agregados. –
@WebUser - ¡Tiene razón! Agregado :) – Eric
Además, puede sugerir a OP que cambie 'CASE WHEN Vote = 1 THEN 1 ELSE 0 END'by' Vote' o por 'coalesce (vote, 0)' – danihp