平均を取得しようとしているようです。
NULL
の代わりに0
を使用してください。これにより、分母にゼロ以外の値を持つ行の数が等しくなりますasset_revenue
。行は毎週の収入を表すか7
ニーズが他の何らかの理由のために保持される場合は、これを行う場合は
SELECT SUM([asset_revenue])/
CASE
WHEN SUM([asset_revenue]) <> 0 THEN SUM(CASE WHEN asset_revenue <> 0 THEN 1 ELSE 0 END)
ELSE 1 -- Special case where asset_revenue is zero across the entire time period. 0/1 is still zero, so that represents an average revenue of zero.
END
:
SELECT SUM([asset_revenue])/
CASE
WHEN SUM([asset_revenue]) <> 0 THEN SUM(CASE WHEN asset_revenue <> 0 THEN 7 ELSE 0 END)
ELSE 1 -- Special case where asset_revenue is zero across the entire time period. 0/1 is still zero, so that represents an average revenue of zero.
END
@Strawberryがある行は、毎日の収入を表す場合
の理由に対して、スクリプトがNULL
を返すように修正してください。 NULL
は、値がであることがわからないことを意味します。値がわからない場合は、その未知の値が算術演算に入れられ、結果が要求されたときに何が起こるかを知ることができません。 55プラス不明な点は何ですか?知りません!
感謝。しかし、私は日数を組み込むために7を使用する必要があります。 – pandoo
大歓迎です。私は自分の答えを更新しました。しかし、 'asset_revenue'が0でない日ごとに分母* 1を合計するので、ここでは' 1'が正しいかもしれないと思います。つまり、毎日収益がある場合、結果は7 + 1 + 1 + 1 + 1 + 1 + 1の合計になります。 –
私はそれを試みましたが、次のエラーがあります。ゼロエラーが発生しました。 – pandoo