私は次のようなSQLを持っています:
select avg(decode(type, 'A', value, null) + decode(type, 'B', value, null)) from table;
これに関する問題は、これらの型の一部が null になる可能性があることです。したがって、null に何かを追加すると null になるため、加算部分は null になります。したがって、デコードをnullから0に変更できると思うかもしれませんが、それは avg() がそれを平均化の一部としてカウントするように見えますが、そうすべきではありません/平均の一部としてカウントしたくありません.
理想的には、追加ではヌルを無視し、残りの値に追加しようとしないだけです。
それでは、私の数字は次のとおりです。
5 + 6 + 5
3 + 2 + 1
4 + null + 2
合計は 28 で、8 で割りたい (null を無視) ですが、デコードで null を 0 に変更すると、平均は 9 で割りますが、これは私が望むものではありません。