CAST(CASE WHEN table_name1 NOT IN ('520','620')
THEN SUM(table_name2) ELSE 0 END
as numeric(15,2)) as Weight
我不知道如何以正确的方式确定数字和小数的长度。 Bigquery 是否具有与普通 SQL 代码相似的数字 (15,2(函数?
这在 BigQuery 中非常简单。 答案是精度为 38,小数位数为 9。
如文档所述:
NUMERIC
数据类型是具有 38 位精度和 9 位十进制小数位数的精确数值。精度是数字包含的位数。小数位数是这些数字中有多少出现在小数点之后。
也就是说,BigQuery 在numeric
/decimal
方面不像其他数据库那样具有灵活性。
戈登·林诺夫提供的答案是正确的,您可以使用'round'
将小数位限制为 2
。如果需要,可以使用SELECT
查询中的ROUND()
函数来获得包含两个小数位的输出。有关澄清,请检查给定的链接 [1]。
查询示例:
SELECT
Id,
ROUND(size,2) As Size
FROM
`bigquery-public-data.github_repos.contents`
LIMIT 100
[1] https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#round