我正在使用SQL Server 2008.如何查詢獲得最近七天的總計?
我想編寫一個查詢,該查詢給出了給定天數的總活動。具體來說,我想統計過去七天的每日總票數。
我的表看起來像這樣:
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
我需要我的結果看起來像這樣
VoteDate ---- Total
2012-01-01 5
2012-01-02 6
2012-01-03 7
2012-01-04 1
2012-01-05 3
我的想法是,我必須做這樣的事情:
SELECT SUM(CASE WHEN Vote = 1 THEN 1 ELSE 0 END) AS Total
FROM Votes
GROUP BY VoteDate
此查詢不起作用,因爲它只計算同時發生(幾乎完全)的投票。當然,我只想看看特定的一天。我如何做到這一點?
爲了增加Eric的回答,您可能還需要添加一個WHERE子句首先檢索數據僅爲去年7(或N)天。否則,您將對全套(可能非常大)執行GROUPING操作,然後只獲取最後7天(或N天)的彙總數據。 – 2012-01-09 22:17:15
@WebUser - 你是對的!增加:) – Eric 2012-01-09 22:18:40
此外,你可以建議OP改變'CASE當表決= 1然後1 ELSE 0結束'由'投票'或'coalesce(vote,0)' – danihp 2012-01-09 22:20:19