BigQueryを利用していた時に、”division by zero”(0の除算)でエラーが発生し、クエリが実行できなかったので、その時の対処法を記載します。
“division by zero”が発生する例
簡単に再現させるのであれば、以下の実行でできます。
SELECT 1 / 0
より具体的な例で説明しますと、
以下のような、部門ごとの売上テーブルがあるとします。
このときに、「一人当たりの売上を算出したい」とすると以下のようなSQLになります。
SELECT
sales / cnt
FROM tb_sales
これを実行すると、”division by zero”が発生し、エラーとなります。
エラーの原因
割り算をする際に、分母が0となるケースに発生します。
対処するには、0の除算が発生しないように、SQLを変える必要があります。
対処法
対処法は複数案考えられますが、
BigQueryには、safe_divideという関数がありますので、こちらを利用するのがおすすめです。
対処例
SELECT
SAFE_DIVIDE(sales, cnt) as sales_per_cnt
FROM tb_sales
出力結果
sales_per_cnt
-------
200,000
200,000
null
以上、『”division by zero”(0の除算)が発生したときの対処法』でした。
コメント