Google BigQueryの課金体系はスキャンしたテーブルのサイズに対して課金されるシステムです。
そのため、無からテーブルを生成し、それに対して計算を行えば、理論上は無料で計算を行うことができるはずです。
というわけで、その1つの実例として、円周率の計算をしてみます。
計算には以下のライプニッツの公式を使います。
$$
\sum _{n=0}^{\infty }\,{\frac {(-1)^{n}}{2n+1}}\;=\;{\frac {\pi }{4}}
$$
[出典] https://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80
円周率を計算する公式の中では収束が遅い方ですが、式の形が簡単なので、計算のサンプルには良さそうです。
SELECT
SUM(4 * POW(-1, n) / (2 * n + 1)) as pi
FROM
(
SELECT GENERATE_ARRAY(1000 * l - 1000, 1000 * l - 1) AS m
FROM UNNEST(GENERATE_ARRAY(1, 1000000)) AS l
),
UNNEST(m) AS n
このSQLでライプニッツの公式の第10億項までの和を求めます。
試しに実行してみると、 3.1415926525880504
という結果が得られました。
計算時間は410秒でした。
この結果と数表を比較してみると、小数点以下第8位までは正確な値になっていることがわかりました。
もちろん、計算にかかった費用はゼロ円です。
誤差の評価を全然していないので、本気で数値計算をしている方々からは怒られそうですが、ネタ記事なのでこのくらいのテキトー加減で許してください。