使用下面的標準sql查詢,我可以返回包含a和b中所有字段的BigQuery中的結構表。如何在bigquery標準sql中使結構扁平化?
SELECT a, b
FROM first_table a
JOIN second_table b
ON a.key = b.key;
結果表架構將有a
作爲記錄,作爲b
紀錄,以a.field1,a.field2,b.field1,b.field2等所有有原來的類型。
如果我保存這個表作爲a_join_b然後查詢它legacy_sql:
SELECT *
FROM a_join_b
;
將壓平的結構,並提供一個表名爲a_field1,a_field2,...,b_field1,b_field2領域。請注意表名稱和字段名稱之間的下劃線,並且a和b可以具有相似的字段名稱。
BigQuery標準SQL中有沒有一種方法可以在不引用單個記錄名的情況下展平表?我在How to convert a nested flatten into Standard SQL看過UNNEST,但該解決方案似乎需要連接必須命名的未命名字段。
謝謝,但這些查詢不會預先指定表名稱a和b。另外,如果a和b具有相同名稱的字段,則它們不起作用。錯誤:不支持結果中重複的列名稱。這些表不包含數組。考慮以下查詢:使用first_table AS( SELECT 777 AS key,1 AS x,2 AS y,3 AS z ), second_table AS( SELECT 777 AS key,4 AS x,5 AS Y,6爲Z ) SELECT * FROM AS first_table一個 JOIN second_table爲b 使用(鍵)''' – rmg
什麼是你從這個例子要的結果? – Maximilian
Mikhail Berlyant在他回覆「在BigQuery標準SQL中是否有預先加入表名的方法?」時提供了公認的解決方案?問題在堆棧中:https://stackoverflow.com/questions/45692560/is-there-a-way-to-prepend-joined-tablename-in-bigquery-standard-sql。 – George