Как запросить, чтобы получить итоги за последние семь дней? - PullRequest
6 голосов
/ 10 января 2012

Я использую 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

Этот запрос не работает, потому что он подсчитывает только голоса, которые произошли (почти точно) одновременно. Конечно, я хочу посмотреть только на определенный день. Как мне это сделать?

Ответы [ 2 ]

11 голосов
/ 10 января 2012

В ролях date:

SELECT    
     cast(VoteDate as date) as VoteDate, 
     SUM(CASE WHEN Vote = 1 THEN 1 ELSE 0 END) AS Total
FROM      Votes
WHERE VoteDate between dateadd(day, -7, GETDATE()) and GETDATE()
GROUP BY  cast(VoteDate as date)

Ваш столбец VoteDate - это datetime, но вам нужна только часть date. Самый простой способ сделать это - привести его к типу date. Вы можете узнать больше о типах даты SQL Server здесь .

И если ваш столбец Vote равен 1 или 0, вы можете просто сделать sum(vote) as Total вместо выполнения оператора case.

3 голосов
/ 10 января 2012
SELECT SUM(Vote) As Total, YEAR(VoteDate),Month(VoteDate),Day(VoteDate)
FROM Votes
Group By YEAR(VoteDate),Month(VoteDate),Day(VoteDate)

Некоторые функции SQL Server , которые могут представлять интерес

Некоторые функции MySQL , которые могут представлять интерес

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...