列のAVG
を得るには、NULL
とゼロの値を無視しますか?ヌルまたはゼロの値を無視してAVGを取得する
私はそれらの平均を得るために3つの列を持っているが、私は次のスクリプトを使用しよう:
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
私はどんな結果を得ることはありません、しかし、3つの列がNULLとゼロを含む値を持っています!
平均値を取得する前にヌル値を除外する方法はありますか?
例:AVERAGE(NOTNULL(SecurityW))
を使用しています。また、 'Column <> 0'は' Column'が 'NULL'の場合に' UNKNOWN'と評価されるので、 'NOT NULL'チェックは不要です。 –