由於無法在BigQuery中更新表格中的數據,並且僅支持追加機制,因此我決定每月創建一個新表格。因此,假設2012年的表格將是(tbl_012012
,tbl_022012
, tbl_032012
,... tbl_122012
)。每條記錄將與日期timestamp
一起存儲爲字符串。現在,如果我的應用程序想要獲取2012年1月(tbl_012012
)到2012年3月(tbl_032012
)範圍內的記錄,BigQuery API是否會通過單個SQL範圍查詢自動遍歷所需表格,還是必須編寫多個SQL查詢用額外的應用程序代碼來檢索每個查詢結果,然後將它們聚合在一起?查詢Big Query中的多個表格
11
A
回答
12
一個SQL查詢可以引用多個表。只需用FROM子句中的逗號分隔每個表即可查詢所有提到的表。
3
這裏是一個片段演示了多個表的例子選擇:
SELECT trafficSource.medium AS Traffic_Source, COUNT(trafficSource.medium) AS Counts_Source
FROM [608XXXXX.ga_sessions_20131008],
[608XXXXX.ga_sessions_20131009],
[608XXXXX.ga_sessions_20131010],
[608XXXXX.ga_sessions_20131011],
[608XXXXX.ga_sessions_20131012],
[608XXXXX.ga_sessions_20131013],
[608XXXXX.ga_sessions_20131014],
[608XXXXX.ga_sessions_20131015],
GROUP BY Traffic_Source
ORDER BY Counts_Source DESC
31
您也可以使用通配符表功能。下面是來自docs爲StandardSQL一個例子:
SELECT
name
FROM
mydata.people
WHERE
age >= 35
AND
(_TABLE_SUFFIX BETWEEN '20140325' AND '20140327')
這裏是爲LegacySQL一個類似的例子(docs)。
SELECT
name
FROM
(TABLE_DATE_RANGE([mydata.people],
TIMESTAMP('2014-03-25'),
TIMESTAMP('2014-03-27')))
WHERE
age >= 35
這將查詢表:
- mydata.people20140325
- mydata.people20140326
- mydata.people20140327
上有docs一些其他選項。我建議檢查一下。
+0
是否可以查詢「201601」形式的月份範圍? –
1
2017年更新:
與BigQuery #standardSQL - 您可以使用標準的UNION ALL
要經過多個表,或者您可以使用一個*
匹配共享相同前綴的所有表。當使用*
匹配器時,您還可以訪問元列_TABLE_SUFFIX
- 以瞭解行來自哪個表。
SELECT * FROM Roster
UNION ALL
SELECT * FROM TeamMascot
相關問題
- 1. 如何合併Big Query表格列表?
- 2. 將Google表格加載到Big Query
- 3. Big Query cache
- 4. Big Query exports
- 5. 在Google Big Query中查詢中文字符(utf-8)
- 6. 從多個表格中查詢多個表格中的條件
- 7. 在Big Query中創建分區表
- 8. Google Big Query和Tableau
- 9. Google Big Query data measurement
- 10. Big Query @ 0 table decorator
- 11. MySQL to Google Big Query
- 12. ga:itemQuantity in ga_sessions_YYYMMDD(Big Query)
- 13. 在Big Query中獲取表格創建時間
- 14. 查詢多個表格
- 15. Laravel查詢多個表格
- 16. PHP查詢多個表格
- 17. 查詢KDB中的多個表格
- 18. OPEN QUERY - 是否可以在OPEN QUERY中使用INNER JOIN查詢多個表?
- 19. Google Big Query的列大小
- 20. 如何提高Google Big Query每日查詢配額
- 21. 在MySQL中查詢多個表格
- 22. 通過eloquent query在多個表格中搜索
- 23. 多次查詢多個表格
- 24. WRITE_TRUNCATE在Big Query中的行爲
- 25. Dataflow和Big Query中的窗口函數
- 26. 如何重命名Big Query中的列?
- 27. 產生查詢查看多個表格
- 28. 將表格數據以CSV格式下載到本地計算機中Big query
- 29. BIG QUERY IMPORT FROM CLOUD問題
- 30. Google Big-query api 403-Forbidden Exception
非常感謝。但是,如果我的查詢搜索可能是多餘的單個記錄,那麼這將適用於範圍查詢。所以在這種情況下,Big Query顯然會遍歷每個月的表格以找到該記錄。 –
BigQuery針對聚合查詢進行了優化,與查詢單個記錄的查詢相反。因此,不幸的是,在這種情況下,如果您只查找可能位於任何表格中的單個記錄,則需要搜索每個月份的表格。 –
感謝您的幫助。 –