レポートを作成中です。年齢列の平均値を取得しようとしています。問題は、すべての行に年齢があるわけではないということです。
列の値が02 4の場合、2ではなく3を返します。これらの行で他の列を使用しているため、WHEREでゼロ行を単純に除外することはできません。 AvgIfNotZeroタイプの関数のようなものはありますか?
SELECT
AVG (CASE WHEN Value <> 0 THEN Value ELSE NULL END)
....
AVGはNULL値を考慮しません。またはこれ
AVG (NULLIF(Value, 0))
、(SELECT AVG(a)FROM
(
SELECT NULLIF([Column1], 0)
UNION ALL
SELECT NULLIF([Column2], 0)
UNION ALL
SELECT NULLIF([Column3], 0)
UNION ALL
SELECT NULLIF([Column4], 0)
) T (a)
) AS [4 Column Average]