Bigquery SUM(Float_Values)返回多个小数位和科学记数法

ste*_*vey 5 google-bigquery

我正在尝试计算商店的总销售额.我在名为UNIT_PRICE的列中有产品价格.所有价格都有2位小数的例子:34.54或19.99等,它们在模式中以类型:float的形式导入.(UNIT_PRICE:浮动)

当我执行选择查询时:"SELECT CompanyName,SUM(Unit_Price)as sumValue"等我在列中返回以下内容,但仅"有时".

2.697829165015719E7

它应该是这样的:26978291.65

当我将它输出到电子表格然后绘制图表时,我需要它在float类型中或者至少代表正常的价格格式.

我尝试了以下但仍有问题:

  • 来源:尝试将原始数据类型转换为BigDecimal,源数据中只有2个小数点,然后导出到csv以导入bigquery但结果相同.
  • Bigquery:尝试首先转换为字符串,然后转换为浮点数然后是SUM,但结果相同."SELECT CompanyName,SUM(Float(String(Unit_Price)))as sumValue"

关于如何处理这个问题的任何想法?

谢谢

Jor*_*ani 8

BigQuery对浮点数使用默认格式,这意味着根据数字的大小,可以使用科学记数法.(请参阅此处的%g格式说明符)

我们试图改变它,但事实证明,很难得到一种让每个人都开心的格式.%f格式化始终生成十进制格式,但也将小数点填充为6位精度,并删除超过一定精度的小数.

我已经提交了一个错误,允许在BigQuery中使用任意格式的字符串转换函数.它会让你运行SELECT FORMAT_STRING("%08d", SUM(Unit_Price)) FROM ...,以便能够控制输出的确切格式.

  • 我得到:无法识别的函数format_string这是活的吗? (3认同)