bigqueryでSQL作成する場合の参考情報いろいろまとめたもの
◆基礎情報
・ ワイルドカードテーブルについて
https://cloud.google.com/bigquery/docs/wildcard-tables?hl=ja
・ WITH句の活用
http://www.oracle.com/technetwork/jp/database/articles/tsushima/tsm11-1598263-ja.html
同じ副問い合わせが複数回発生する場合に有効。
他のSQL文でも副問合せ結果を使用する場合には中間テーブルを使う。
◆クエリ課金低減化
・ 集計コストが低くなるコード
・ webコンソールでクエリ発行時に、必要サイズが表示されるのでそれを必ず見る(2018-10-01時点で、5$/5TB)
・ SELECT文は、必要最低限のカラムのみを指定
・ 適切なパーティション指定
※1つの実行クエリ内で同テーブルを読込む場合コストは同じ(where句の指定ではコスト変動しない)
◆エラーの回避方法
・ 標準SQLを有効に
・ unionする場合のorder byはクエリ末部に設定
・ unionはdinstinctかallを
・ 0徐算回避
◆集計時の注意点
・ 演算や比較式ではnullの存在に注意
>集計結果がnullになることがある
・ whereで期間指定をする場合は,上限・下限に注意
>上限・下限の設定漏れなどがないように
・ standardSQLの浮動小数点の誤差に注意しましょう
>比較する場合は,round などで誤差を丸めるなどで対策する
#standardSQL select 0.99-0.69 > 行 f0_ 1 0.30000000000000004