2010-06-11 26 views

Trả lời

2

Nó sẽ giúp xem toàn bộ truy vấn được đề cập. Đối với mỗi giá trị ngày tồn tại trong stats, bạn sẽ nhận được NULL cho giá trị Tổng hoặc giá trị số nguyên. Nếu bạn đang nhóm theo [Ngày] và một giá trị ngày đã cho không tồn tại, nó rõ ràng sẽ không hiển thị. Ví dụ, hãy xem xét các thử nghiệm sau đây:

Create Table Test (Clicks int null, [Date] datetime null) 
Insert Test(Clicks,[Date]) Values(1,'2010-06-06') 
Insert Test(Clicks,[Date]) Values(2,Null) 
Insert Test(Clicks,[Date]) Values(3,'2010-06-06') 
Insert Test(Clicks,[Date]) Values(4,'2010-06-07') 
Insert Test(Clicks,[Date]) Values(4,Null) 
Insert Test(Clicks,[Date]) Values(4,'2010-06-07') 
Insert Test(Clicks,[Date]) Values(Null,'2010-06-08') 

Select T.[Date], Sum(Clicks) 
From Test T 
Group By T.[Date] 

Kết quả sẽ giống như thế:

NULL      6 
2010-06-06 00:00:00.000 4 
2010-06-07 00:00:00.000 8 
2010-06-08 00:00:00.000 NULL 

Lưu ý tôi vẫn nhận được liên tiếp ngay cả khi Sum(Clicks) là null. Có phải bạn đang tham gia thông tin này vào một thông tin khác trên tính toán Sum(Clicks) không?

0

Vì bạn đang thực hiện một nhóm theo ngày, tôi cho rằng bạn có nhiều hơn một bản ghi mỗi ngày. Tôi nghĩ bạn sẽ phải ifnull trên dữ liệu gốc hoặc bạn sẽ mất một số dữ liệu.

Ví dụ, nếu 10 tháng 6 có tội danh 10, 20, 30 và null, bạn muốn nhận được null thay vì 60.

Tôi nghĩ rằng điều này sẽ ngăn chặn vấn đề rằng:

select ifnull(sum(ifnull(clicks,0)), 'null'), date from stats group by date; 
Các vấn đề liên quan