gpt4 book ai didi

sql - bigquery join error 字段具有不同类型的 int32 和 int64,因此不能作为连接属性进行比较

转载 作者:行者123 更新时间:2023-12-04 04:33:43 26 4
gpt4 key购买 nike

我在名为race 的云项目中创建了一个种族表。
该表包含一个整数字段和一个字符串字段:

然后我尝试使用 publicdata.samples.natality 和我的种族表执行连接查询:

SELECT COUNT(*),natality.year FROM [publicdata:samples.natality] natality INNER JOIN [regal-cider-369:ab.race] Race ON natality.child_race = Race.id GROUP BY 2 LIMIT 50

我收到以下错误:

字段 child_race 和 id 具有不同类型的 int32 和 int64,因此不能作为连接属性进行比较

这可能是 Bigquery 引擎的一个限制,没关系。

但是,问题是我无法在 API 中找到任何可以在创建种族表时指定字段是 int32 还是 int64 的地方(迄今为止我在其中看到的唯一整数数据类型)文档是字符串、整数、浮点数、 bool 值、时间戳或记录 ( https://developers.google.com/bigquery/docs/reference/v2/tables#schema.fields.type )。

我错过了什么吗?还是“出生”示例表使用的数据类型在 API 中不可用?

最佳答案

BigQuery 中的所有整数都应该是 int64s(BigQuery 称它们为 INTEGER)。如果他们不是,那就是一个错误。但是,某些示例表可能具有基础类型为 int32 的值。

你只在出生表上看到这个吗?如果是这样,我们应该修复它。

一种解决方法是将值强制为 INTEGER ……但是,您需要使用子查询。如:

SELECT COUNT(*), natality.year FROM (
SELECT year, INTEGER(child_race) as child_race
FROM [publicdata:samples.natality]) AS natality
INNER JOIN
(SELECT INTEGER(id) as id FROM [regal-cider-369:ab.race]) AS race
ON natality.child_race = race.id
GROUP BY 2 LIMIT 50

关于sql - bigquery join error 字段具有不同类型的 int32 和 int64,因此不能作为连接属性进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20102800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com