17.00 - 17.05 - INTEGER値またはDECIMAL値の計算 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-170K-JPN
Language
日本語 (日本)

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))