唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

BigQueryのGENERATE_ARRAY関数で個数が多い等差数列を作る

GENERATE_ARRAY(start_expression, end_expression[, step_expression])関数を使うと連番の数値(等差数列)を作ることができます

f:id:sucrose:20180616232444p:plain
しかし一度に作る個数が多いとError: GENERATE_ARRAY(1, 10000000, 1) produced too many elementsのようにエラーが出てしまいます

なので力技でエラーを回避します
2つのGENERATE_ARRAY()で数列を生成して、片方を小さい方の桁もう片方を大きい方の桁の数値とします
こうやると先程は\(10^7\)個の数列の作成でもエラーになっていたのが例えば\(10^9\)個の数列でも作ることができます

#standardSQL
SELECT
  i * 1000 + i2 AS i
FROM UNNEST(GENERATE_ARRAY(0, 999999)) AS i, UNNEST(GENERATE_ARRAY(0, 1000 - 1)) AS i2

ただし実行時間は結構遅いので注意が必要です
\(10^9\)個の数列を作って出力するだけで8分以上かかっています
f:id:sucrose:20180616235031p:plain

BigQueryのWeb UIで選択範囲をコメントアウトする

範囲を選択してCtrl + /を押せばよいみたいです(Macの場合は⌘ Cmd + /)

以下の範囲選択した状態でCtrl + /を押すと
f:id:sucrose:20180527230710p:plain
文字が書かれている部分だけコメントアウトされます
f:id:sucrose:20180527230752p:plain

逆にこの形式(先頭に-- )でコメントアウトされている行を選択してこのキーボードショートカットを押すとコメントではなくなります

この方法でのコメントアウトは必ず行の先頭に行われるようで、行の途中を選択していても先頭からコメントになります

ちなみに選択範囲の一部にコメントアウトされている箇所がある場合にも
f:id:sucrose:20180527225338p:plain
ちゃんとそれらの範囲全体がコメントアウトされます
f:id:sucrose:20180527225523p:plain