var 変数 = BigQuery.Jobs.query( クエリー文 );このように、引数にクエリーのテキストを指定します。SQLデータベースなどを利用したことがあれば、「クエリーを送信して処理を行わせる」というやり方はおなじみでしょう。ただし異なるのは、「実行するのは、SQLではない」という点です。
SELECT フィールド名,フィールド名,…… FROM [データセット名.テーブル名];SQLのSELECT文にそっくりですね。SELECTの後に、取得するフィールド名をカンマで区切って記述します(ワイルドカードの*記号は使えません)。そしてFROMの後に、[]をつけてデータセット名とテーブル名をドットでつなげて記述します。例えば、mydatasetというデータセットにあるmytableから、nameとageのフィールドの値だけをとり出すなら、
SELECT name,age FROM [mydataset.mytable];こんな具合に記述すれば良いわけです。意外と簡単ですね。――これに、「特定の条件に合うレコードだけを検索する」というようにしたい場合は、更にその後に「WHERE」という句をつなげます。
SELECT フィールドの指定 FROM [○○.○○] WHERE …条件となる文…;こんな具合です。条件となる文は、いろいろとありますが、基本は「等号・不等号の記号」でしょう。例えば、「ageが20以上のレコードだけ検索」というなら、
SELECT name,age FROM [mydataset.mytable] WHERE age >= 20;このようにすればいいでしょう。注意したいのは、テキストです。例えば、「nameにyamadaというテキストが含まれている」という場合、
SELECT name,age FROM [mydataset.mytable] WHERE name CONTAINS "yamada";という具合になります。「name = "yamada"」というように等号不等号はテキストでは使えないので注意が必要です。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
function findByQuery(){ var str = Browser.inputBox("検索テキスト:"); var query = 'SELECT name,mail,age FROM […データセット名….mytable] WHERE name CONTAINS "' + str + '";'; var result = BigQuery.Jobs.query("123158439972",query); var rows = result.getRows(); var msg = ""; for(var i in rows){ var row = rows[i]; var f = row.getF(); msg += f[0].getV() + " "; } msg += " -- total " + rows.length + " records."; Browser.msgBox(msg); }
<< 前へ |