BigQueryのSQL文法
BigQueryのSQL文法には、以下の2つが存在しています。
- BigQuery独特の文法(Legacy SQL)
- 標準SQL(Stadard SQL)
BigQueryでは、サービス当初から、FROM句にカンマ区切りでテーブルを並べるとUNIONになる等の、かなり特殊な方言をもつ独特の文法のSQL(Legacy SQL)が使われていましたが、2016/11/30のバージョンアップで、標準SQL(Standard SQL)が正式リリースされ、従来のSQL文法および標準SQLが両方共利用可能となりました。
SQL文法の切り替え方法
2つの文法は、クエリー実行時に以下の方法で切り替えることができます。
(1) APIアクセス時に configuration.query.useLegacySql に true/false を指定する
WebUI からSQLを実行する場合は、[Show Options] の [SQL Version] の [use Legacy SQL] をチェックする(デフォルトでチェックされている)と従来の文法(Legacy SQL)で実行され、チェックを外すと標準SQL(Standard SQL)で実行されます。
(2) 実行するSQL自体にコメントを付ける
実行するSQLの先頭に以下の2つのコメントをつけると切り替えることができます。
- #legacySQL
- #standardSQL
WebUI からSQLを実行する場合でも、SQLの入力エリアにこのコメントを付けた状態で記述すると、(1)で説明した[use Legacy SQL] のオプションの設定にかかわらず、コメントで指定した方の文法で実行されます。
最後に
オンラインマニュアルの該当箇所に上記の説明がありますので、あわせて確認しておくほうがいいかもしれません。
[Enabling Standard SQL] (https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql)