Làm cách nào để nhận được AVG
của cột bỏ qua NULL
và giá trị bằng không?Nhận AVG bỏ qua giá trị Null hoặc Zero
Tôi có ba cột để có được trung bình của họ, tôi cố gắng sử dụng các kịch bản sau đây:
SELECT distinct
AVG(cast(ISNULL(a.SecurityW,0) as bigint)) as Average1
,AVG(cast(ISNULL(a.TransferW,0) as bigint)) as Average2
,AVG(cast(ISNULL(a.StaffW,0) as bigint)) as Average3
FROM Table1 a, Table2 b
WHERE a.SecurityW <> 0 AND a.SecurityW IS NOT NULL
AND a.TransferW<> 0 AND a.TransferWIS NOT NULL
AND a.StaffW<> 0 AND a.StaffWIS NOT NULL
AND MONTH(a.ActualTime) = 4
AND YEAR(a.ActualTime) = 2013
tôi không nhận được bất kỳ kết quả, tuy nhiên ba cột có giá trị bao gồm NULL và số không!
Có cách nào để loại trừ giá trị null trước khi nhận giá trị trung bình không?
dụ: AVERAGE(NOTNULL(SecurityW))
Tất cả những điều đó có nghĩa là bạn sẽ chỉ nhận các hàng có giá trị không NULL trong cả 3 cột. Ngoài ra, kiểm tra 'NOT NULL' của bạn không bắt buộc, vì' Column <> 0' đánh giá là 'UNKNOWN' nếu' Column' là 'NULL'. –