【问题标题】:BigQuery - convert scientific notation to decimal formatBigQuery - 将科学记数法转换为十进制格式
【发布时间】:2018-11-27 00:40:19
【问题描述】:
SELECT 
    SUM(totals.totalTransactionRevenue) *0.20 AS COGS
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` 
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701';

为什么 BigQuery 会自动将创建的“已售商品成本 - COGS”字段转换为科学计数法? 以及如何修改此查询以将 COGS 提取为十进制格式值?

谢谢。

【问题讨论】:

  • 我的猜测是首先将totals.totalTransactionRevenue 转换为十进制。这里的猜测是该属性是float
  • 不是一个完整的答案,但如果您是从表示层调用 Big Query,那么请担心那里的格式。
  • @HoneyBadger 我怎样才能在同一个查询中做到这一点?

标签: sql google-bigquery


【解决方案1】:

您可以使用新的数字/十进制值来获得您想要的格式:

SELECT cast(SUM(totals.totalTransactionRevenue) * 0.20 as numeric) AS COGS

它也可以转换为字符串:

SELECT cast(SUM(totals.totalTransactionRevenue) * 0.20 as string) AS COGS

【讨论】:

  • 再次感谢戈登。那行得通。知道当只有 sum() 显示为数字时,为什么 BigQuery 会自动将 sum() * 0.20 转换为科学计数法?
  • @AdilK 。 . .老实说,我完全不知道。到目前为止,我还没有遇到过这种情况,除非我运行您的查询。对于某些数值,我们仍然使用浮点数;也许总和还没有达到 100,000,000。
猜你喜欢
  • 1970-01-01
  • 2021-03-30
  • 2012-10-15
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多