DECIMALまたはINTEGER値のAVGは、個々の値が非常に大きい場合、または値の数が多い場合には、オーバーフローになる可能性があります。
オーバーフローが発生した場合には、次のように、DECIMALまたはINTEGER値をREALに変換するCAST関数を入れてAVGの呼び出しを変更します。
AVG(CAST(value AS REAL) )
平均をとる前に値をREALとしてキャストすると、多少精度を欠くことになります。
結果のタイプは、どちらの場合もREALになるため、CASTを行なっても多少精度が悪くなるだけでその他の点においては結果は変わりません。
xが整数である場合には、AVGは小数値を表示しません。小数値は、値をDECIMALとしてキャストすることによって得られます。例えば、次のDECIMALへのCASTを使用します。
CAST(AVG(value) AS DECIMAL(9,2))