Sto utilizzando SQL Server 2008.Come eseguire una query per ottenere i totali per gli ultimi sette giorni?
Voglio scrivere una query che mi dà un'attività totale per un numero di giorni determinati. Nello specifico, voglio contare i voti totali al giorno negli ultimi sette giorni.
Il mio tavolo si presenta così:
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
Ho bisogno i miei risultati a guardare come questo
VoteDate ---- Total
2012-01-01 5
2012-01-02 6
2012-01-03 7
2012-01-04 1
2012-01-05 3
Il mio pensiero è che devo fare qualcosa di simile:
SELECT SUM(CASE WHEN Vote = 1 THEN 1 ELSE 0 END) AS Total
FROM Votes
GROUP BY VoteDate
Questa query non funziona perché conta solo i voti che si sono verificati (quasi esattamente) allo stesso tempo. Certo, voglio guardare solo in un giorno specifico. Come faccio a far succedere questo?
Per aggiungere alla risposta di Eric, è anche possibile aggiungere una clausola WHERE per recuperare prima i dati per solo lo scorso 7 (o N) giorni. In caso contrario, si eseguirà l'operazione di raggruppamento sul set completo (che potrebbe essere molto grande) e quindi si otterranno solo gli ultimi 7 (o N) giorni di dati aggregati. –
@WebUser - Hai ragione! Aggiunto :) – Eric
Inoltre, puoi suggerire a OP che cambia 'CASE WHEN Vote = 1 THEN 1 ELSE 0 END'by' Vote' o'' coalesce (vote, 0)' – danihp