尝试在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中重新排列/重新排序嵌套的重复列

在 BigQuery 中动态查询多个表

从 SQL 查询向 BigQuery 表添加多个分区列

Google BigQuery:将查询结果保存到表时找不到数据集

尝试使用 pandas 数据框将数据附加到 BigQuery 表时出错

在 BigQuery 中按 Max(values) 返回列的名称。错误:“运算符 CASE 没有匹配的签名;”大查询