2016-10-10 8 views
0

私は0の値を得ることができるカラムを持っていますが、その0をデバイダの一部として数えない限り、そのカラムの平均を計算する必要があります。AVG()は0を無視しますか?

私は、次のクエリを持っている:

SELECT AVG(CAST(RATING AS NUMERIC(18, 2))) AS AVERAGE, 
     QUESTIONID, 
     Questions.SHORTVERSION, 
     COUNT(CASE 
       WHEN RATING > 0 
       THEN 1 
       ELSE NULL 
      END) AS COUNT 
FROM AnswersRating 
    INNER JOIN Questions ON Questions.ID = QUESTIONID 
WHERE SURVEYID IN 
(
    SELECT ID 
    FROM SURVEYS 
    WHERE FLIGHTDATAID = '8371' 
) 
GROUP BY QUESTIONID, 
     Questions.SHORTVERSION 
ORDER BY QUESTIONID; 

私はこれを支援するためにNULLIFを使用することができますが、私はそれを正しく使用する方法を見つけ出すことができなかったことをどこかで読みました。誰かが私を助けることができますか? AVGはNULLを無視するよう

+0

。 NULLIF(RATING、0) – VDK

+2

'rating> 0'を追加できませんか? –

+0

私は@vkpに同意します、あなたの_col!= 0 – samirk433

答えて

2

あなたは、NULL値にあなたの0を変換するために、NULLIFを使用することができます:あなたはNULLIFを使用することができます

NULLIF(RATING, 0) 
関連する問題