尝试在BigQuery中查询多个表时,列名称不明确
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试在BigQuery中查询多个表时,列名称不明确相关的知识,希望对你有一定的参考价值。
我想查询多个表,所有表都以相同的顺序使用相同的列名,并组合结果。
SELECT SUBSTR(arrest_date, 0, 4) arrest_year, *
FROM
`OBTS.circuit11`,
`OBTS.circuit15`,
`OBTS.circuit17`,
`OBTS.circuit19`
WHERE
init_statute LIKE '%3%22%32%' OR
init_statute LIKE '%3%22%34%' OR
LOWER(init_charge_descrip) LIKE '%suspend%';
当我运行这个BigQuery给我以下错误。
Column name init_statute is ambiguous at [8:3]
如何查询这些表并将所有结果行合并为一组结果?
答案
我想你正在寻找UNION ALL vs CROSS JOIN(注意:BigQuery标准SQL中的逗号用于表达CROSS JOIN)
所以,你最有可能在下面寻找
SELECT SUBSTR(arrest_date, 0, 4) arrest_year, *
FROM (
SELECT * FROM `OBTS.circuit11` UNION ALL
SELECT * FROM `OBTS.circuit15` UNION ALL
SELECT * FROM `OBTS.circuit17` UNION ALL
SELECT * FROM `OBTS.circuit19`
)
WHERE
init_statute LIKE '%3%22%32%' OR
init_statute LIKE '%3%22%34%' OR
LOWER(init_charge_descrip) LIKE '%suspend%'
以上是关于尝试在BigQuery中查询多个表时,列名称不明确的主要内容,如果未能解决你的问题,请参考以下文章
UNION表时如何在Bigquery中重新排列/重新排序嵌套的重复列
Google BigQuery:将查询结果保存到表时找不到数据集