sql - 数值数据类型和小数
问题描述
我确定这一定很简单,但我似乎无法弄清楚。我有一列充满分数,例如:0.6333333333。我将数据类型设为 NUMERIC 是否正确?还是应该是别的东西?因为它一直给我这个错误:
Could not convert value '0.6333333333' to numeric
我应该减少小数还是将类型更改为其他类型?
解决方案
BigQuery 中的NUMERIC
数据类型可为您提供所需的一切,只要您需要 38 位的精度和小数点右侧最多 9 位的精度。引用文档:
NUMERIC 数据类型是具有 38 位精度和 9 位小数位的精确数值。
您的值在小数点右侧有 10 位。因此,这无法准确表示。你能做什么?以下是一些选项:
- 忘记第十位数字。它持续的时候很好,但 BQ 不支持它。
- 将这些值乘以 10 或其他 10 的倍数,这样它们就可以精确地表示(你知道,这些值表示毫米而不是公里)。
- 将值存储为字符串并在需要进行算术运算时转换为浮点数。
- 将值存储为浮点数,并希望该值“足够接近”(该值应该有足够的精度)。
推荐阅读
- pandas - pyarrow 和 pandas 的集成
- javascript - NestJS - JWTModule 上下文依赖
- javascript - JavaScript 中的 Module.exports
- firefox - 网络引擎 - 在电子应用程序中用 Firefox 替换铬
- kubernetes - Kubeadm 加入一个新的主节点失败,因为“Initial timeout of 40s passed”
- python - /logout 处的 RecursionError 超出了 django 中的最大递归深度
- c++-actor-framework - 删除/跳过消息 - C++ Actor Framework (CAF)
- swift - 我无法从画廊 swift 中选择视频
- tensorflow - 如何在 TensorFlow 2.0 中为多个 trainable_weights 运行 apply_gradients
- python - Pandas:如何选择本月和最近两个月的值?