我正在使用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