在 Bigquery 中的 sum() 之后将科学记数法转换为浮点数
Posted
技术标签:
【中文标题】在 Bigquery 中的 sum() 之后将科学记数法转换为浮点数【英文标题】:Convert scientific notation to float after sum() in Bigquery 【发布时间】:2019-03-12 17:30:19 【问题描述】:我将收入浮动值作为字符串。在执行一个简单的查询后:
SELECT
EXTRACT(date FROM time) date,
SUM(CAST(revenue AS FLOAT64)) number
FROM
`mytable`
GROUP BY date
ORDER BY date DESC
我知道了:
2019-03-11 3.2172407478999996E8
2019-03-10 2.3065347E7
等等。
问题是 - 如何将这些值转换为浮点数?我知道堆栈上已经发布了相同类型的问题,但没有一个能够让我找到正确的解决方案。
【问题讨论】:
【参考方案1】:该值已经是一个浮点数,只是FORMAT
它:
SELECT FORMAT('%.2f', 3.2172407478999996E8)
-- 321724074.79
PS:如果收入是某种货币/财务计算,则不要转换为浮动;改用十进制数据类型。
【讨论】:
【参考方案2】:我想如果你转换成一个字符串,你会得到值:
CAST(SUM(revenue) AS string) as number
或numeric
:
CAST(SUM(revenue) AS numeric) as number
【讨论】:
是的,好像一直都在表面上【参考方案3】:INTEGER
铸造怎么样
SELECT
EXTRACT(date FROM time) date,
SUM(CAST(revenue AS INTEGER)) number
FROM
`mytable`
GROUP BY date
ORDER BY date DESC
【讨论】:
以上是关于在 Bigquery 中的 sum() 之后将科学记数法转换为浮点数的主要内容,如果未能解决你的问题,请参考以下文章
Google BigQuery - 根据另一列中的值减去一列的 SUM
Google BigQuery:即使在 SUM 别名更改时,SUM 也会返回不同的结果