通过Cloud Datalab加入Google BigQuery
问题描述:
我试图在Google BigQuery中对来自两个不同表格(其中一个是视图)的两列进行联接。我曾尝试多种方式,但最一贯收到此错误:通过Cloud Datalab加入Google BigQuery
invalidQuery: 2.1 - 0.0: JOIN cannot be applied directly to a table union or to a table wildcard function. Consider wrapping the table union or table wildcard function in a subquery (e.g., SELECT *).
这里是我的SQL(传统)查询:
SELECT
blp_today.beta_key,
blp_today.px_last,
blp_today.eqy_weighted_avg_px,
blp_today.created_date,
blp_today.security_ticker,
ciq_company_stg.ticker,
ciq_company_stg.ciq
FROM
[fcm-dw:acquisition_bloomberg.blp_today],
[fcm-dw:acquisition_ciq]
JOIN
blp_today.security_ticker AS ticker
ON
blp_today.security_ticker = ciq_company_stg.ticker
LIMIT 1000
任何帮助将非常感激。
答
我认为你要么想是这样的:
SELECT * FROM(SELECT
beta_key,
px_last,
eqy_weighted_avg_px,
created_date,
security_ticker,
FROM
[fcm-dw:acquisition_bloomberg.blp_today],
[fcm-dw:acquisition_ciq]) as a
JOIN
blp_today.security_ticker AS ticker
ON
a.security_ticker = ciq_company_stg.ticker
LIMIT 1000
//编辑:我刚才那种错过了,你是(后您的加入语句)加入表实际上并不似乎是一个表。你是否想加入或结合这两个表:[fcm-dw:acquisition_bloomberg.blp_today]和[fcm-dw:acquisition_ciq]?后者甚至是一张桌子?您的代码似乎表明存在另一个名为:[fcm-dw:acquisition_ciq.ciq_company_stg]的表?
答
首套你的工会成子选择再加入结果
select ...
FROM
(select * from
[fcm-dw:acquisition_bloomberg.blp_today],
[fcm-dw:acquisition_ciq]) t
JOIN
blp_today.security_ticker AS ticker
后者实际上是在同一个表的视图,这有助于虽然,谢谢。 –