Sql 数字数据类型和小数

Sql 数字数据类型和小数,sql,google-bigquery,Sql,Google Bigquery,我相信这一定很简单,但我似乎不明白。我有一列分数,比如:0.6333333。我将数据类型设置为数字是否正确?还是应该是别的什么?因为它总是给我这个错误: Could not convert value '0.6333333333' to numeric 我应该减少小数还是将类型改为其他类型?BigQuery中的NUMERIC数据类型为您提供所需的一切,只要您希望精度为38位,小数点右侧最多9位。引述: 数字数据类型是一个精确的数值,精度为38位,小数位数为9位 您的值在小数点右侧有10位数字。

我相信这一定很简单,但我似乎不明白。我有一列分数,比如:0.6333333。我将数据类型设置为数字是否正确?还是应该是别的什么?因为它总是给我这个错误:

Could not convert value '0.6333333333' to numeric

我应该减少小数还是将类型改为其他类型?

BigQuery中的
NUMERIC
数据类型为您提供所需的一切,只要您希望精度为38位,小数点右侧最多9位。引述:

数字数据类型是一个精确的数值,精度为38位,小数位数为9位

您的值在小数点右侧有10位数字。因此,这不能准确地表示出来。你能做什么?以下是一些选项:

  • 忘了第十个数字吧。这是很好的,虽然它持续,但BQ不支持它
  • 将这些值乘以10或其他10的倍数,这样就可以精确地表示它们(你知道,这些值表示毫米而不是公里)
  • 将值存储为字符串,并在需要执行算术时转换为浮点值
  • 将值存储为浮点数,并希望该值“足够接近”(该值应有足够的精度)

这段代码在BigQuery中运行良好:选择
cast('0.6333333'为数字)