2016-10-04 7 views
1

私は次のクエリを持っているが返されます。しかし、私はこのエラーを受け取ります:Error: Floating point error in function: EXPEXP()は、浮動小数点エラー

私はダミーデータでEXP()を試してみました。例:

なぜ実際のデータで浮動小数点エラーが発生するのですか?回避するにはどうすればよいですか?私はEXP(CAST(col as FLOAT64))EXP(ROUND(col, n))のようなものを試しましたが、私はまだ同じエラーが発生します。

+0

誰かがそれをデバッグできる場合のためのジョブID? –

答えて

3

709.7827より大きい数値で作業している可能性があります。

奇妙な番号、それでもFortranのドキュメントで:

EXP(X)

Exponential.

X must be less than or equal to 709.7827.

http://sc.tamu.edu/IBM.Tutorial/docs/Compilers/xlf_8.1/html/lr277.HTM

この数字は、E^709.7827後に大きくなりすぎているため。

1

は、クエリを実行します。

SELECT MAX(col) 
FROM project.dataset.tablename; 

あなたがオーバーフローエラーを得ている理由はおそらく、その後は明らかであろう。

SELECT (CASE WHEN col < ?? THEN EXP(col) END) 
FROM project.dataset.tablename; 

が、私は価値を提案することもできますが、それはおそらく、あなたのアプリケーションから明らかである - 10または100を超える何かがちょうど不合理であるかもしれないと言う:あなたはcaseを使用して、それを回避することができます。

関連する問題