2013-12-19 36 views
13

創建臨時表有什麼辦法來創建通過谷歌的BigQuery一個臨時表:如何在谷歌的BigQuery

SELECT * INTO <temp table> 
FROM <table name> 

一樣,我們可以在SQL創建?

對於複雜的查詢,我需要創建臨時表來存儲我的數據。

回答

6

bigquery中的每個查詢都會創建一個包含結果的臨時表。暫時的,除非你給目標表命名,那麼你就可以控制它的生命週期。

使用api查看臨時表名稱,或在查詢時爲您的表命名。

+2

我不想通過API來創建臨時表。我想在瀏覽器工具(https://bigquery.cloud.google.com)中查詢時通過查詢本身創建它。 – Vasundhara

+1

同樣的事情。如果您查看Web UI上的查詢歷史記錄,則會看到每個過去的查詢都獲得的臨時表名稱。 –

+1

您也可以指定目標表(請參閱UI中的「啓用選項」按鈕);這可以讓你爲你的查詢命名一個目標表。 SELECT INTO無法將結果寫入表中。 –

4

SELECT name,count FROM mydataset.babynames 
    WHERE gender = 'M' ORDER BY count DESC LIMIT 6 INTO mydataset.happyhalloween; 

的SQL樣本命令行等效最簡單的是

bq query --destination_table=mydataset.happyhalloween \ 
"SELECT name,count FROM mydataset.babynames WHERE gender = 'M' \ 
ORDER BY count DESC LIMIT 6" 

在這裏看到的文檔: https://cloud.google.com/bigquery/bq-command-line-tool#createtablequery

7

臨時表可以與WITH在所創建的"New Standard SQL"。見WITH clause

由谷歌給出一個例子:

WITH subQ1 AS (SELECT SchoolID FROM Roster), 
    subQ2 AS (SELECT OpponentID FROM PlayerStats) 
SELECT * FROM subQ1 
UNION ALL 
SELECT * FROM subQ2;