[BigQuery] “division by zero”(0の除算)が発生したときの対処法

スポンサーリンク
BigQuery

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の除算)が発生したときの対処法』でした。

コメント

タイトルとURLをコピーしました