Tôi đang sử dụng SQL Server 2008.Cách truy vấn để nhận tổng số trong bảy ngày qua?
Tôi muốn viết truy vấn cung cấp cho tôi tổng số hoạt động trong một số ngày nhất định. Cụ thể, tôi muốn đếm tổng số phiếu bầu mỗi ngày trong bảy ngày qua.
bảng của tôi trông như thế này:
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
tôi cần kết quả của tôi trông giống như
VoteDate ---- Total
2012-01-01 5
2012-01-02 6
2012-01-03 7
2012-01-04 1
2012-01-05 3
suy nghĩ của tôi này là tôi phải làm một cái gì đó như thế này:
SELECT SUM(CASE WHEN Vote = 1 THEN 1 ELSE 0 END) AS Total
FROM Votes
GROUP BY VoteDate
Truy vấn này không hoạt động vì nó chỉ đếm số phiếu đã xảy ra (gần như chính xác) cùng một lúc. Tất nhiên, tôi chỉ muốn nhìn vào một ngày cụ thể. Làm thế nào để tôi thực hiện điều này?
Để thêm vào câu trả lời của Eric, bạn cũng có thể muốn thêm một mệnh đề WHERE để đầu tiên lấy dữ liệu cho chỉ kéo dài 7 (hoặc N) ngày. Nếu không, bạn sẽ thực hiện thao tác Nhóm trên tập hợp đầy đủ (có thể rất lớn) và sau đó chỉ nhận được dữ liệu tổng hợp trong 7 ngày (hoặc N) cuối cùng. –
@WebUser - Bạn chính xác! Đã thêm :) – Eric
Ngoài ra, bạn có thể đề xuất OP thay đổi 'TRƯỜNG HỢP KHI CHỌN = 1 THÌ 1 ELSE 0 END' bằng' Bỏ phiếu' hoặc bằng 'coalesce (bỏ phiếu, 0)' – danihp