我正在尝试使用此命令连接两个表:
SELECT * FROM bigquery-public-data.github_repos.files内联接bigquery-public-data.github_repos.commits使用(repo_name)
但是联接的两边都有不兼容的类型:STRING和ARRAY
谢谢!
答案 0 :(得分:2)
您想将20亿行表与2亿行合并在一起。除非您对要从中获得的收益定义限制,否则这将不会很好。
关于此查询的技术问题:错误表明您正在尝试JOIN
的单个值与值的数组。您需要UNNEST()
该数组。
这将在语法上起作用:
SELECT *
FROM `bigquery-public-data.github_repos.files` a
INNER JOIN (
SELECT * EXCEPT(repo_name)
FROM `bigquery-public-data.github_repos.commits`
, UNNEST(repo_name) repo
) b
ON a.repo_name=b.repo
但是,如果我坚持下去,据我所知,它将无用地使用所有的每月免费配额(扫描的1TB数据)。