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文でも副問合せ結果を使用する場合には中間テーブルを使う。

◆クエリ課金低減化

・ 集計コストが低くなるコード

https://qiita.com/simonritchie/items/35be3bda0cb64dad731f

・ webコンソールでクエリ発行時に、必要サイズが表示されるのでそれを必ず見る(2018-10-01時点で、5$/5TB)

・ SELECT文は、必要最低限のカラムのみを指定

・ 適切なパーティション指定

 ※1つの実行クエリ内で同テーブルを読込む場合コストは同じ(where句の指定ではコスト変動しない

◆エラーの回避方法

・ 標準SQLを有効に

https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql

・ unionする場合のorder byはクエリ末部に設定

https://stackoverflow.com/questions/43970694/unexpected-keyword-union-in-bigquery

・ unionはdinstinctかallを

・ 0徐算回避

https://www.ipentec.com/document/sql-error-0-division

◆集計時の注意点

・ 演算や比較式ではnullの存在に注意
  >集計結果がnullになることがある

・ whereで期間指定をする場合は,上限・下限に注意
  >上限・下限の設定漏れなどがないように

・ standardSQLの浮動小数点の誤差に注意しましょう

  >比較する場合は,round などで誤差を丸めるなどで対策する

#standardSQL 
select 0.99-0.69 

> 行   f0_
  1   0.30000000000000004
おすすめの記事