在 Bigquery 中的 sum() 之后将科学记数法转换为浮点数
Convert scientific notation to float after sum() in Bigquery
我将收入浮动值作为字符串。在执行如下简单查询后:
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
以此类推
问题是 - 如何将这些值转换为浮点数? 我知道堆栈中已经发布了同类问题,但是 none 其中带来了给我一个合适的解决方案。
我想如果你转换成一个字符串,你会得到值:
CAST(SUM(revenue) AS string) as number
或numeric
:
CAST(SUM(revenue) AS numeric) as number
INTEGER
选角怎么样
SELECT
EXTRACT(date FROM time) date,
SUM(CAST(revenue AS INTEGER)) number
FROM
`mytable`
GROUP BY date
ORDER BY date DESC
该值已经是一个浮点数,只是FORMAT
它:
SELECT FORMAT('%.2f', 3.2172407478999996E8)
-- 321724074.79
PS:如果收入是一些monetary/financial计算,不要转换为浮动;请改用十进制数据类型。
我将收入浮动值作为字符串。在执行如下简单查询后:
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
以此类推
问题是 - 如何将这些值转换为浮点数? 我知道堆栈中已经发布了同类问题,但是 none 其中带来了给我一个合适的解决方案。
我想如果你转换成一个字符串,你会得到值:
CAST(SUM(revenue) AS string) as number
或numeric
:
CAST(SUM(revenue) AS numeric) as number
INTEGER
选角怎么样
SELECT
EXTRACT(date FROM time) date,
SUM(CAST(revenue AS INTEGER)) number
FROM
`mytable`
GROUP BY date
ORDER BY date DESC
该值已经是一个浮点数,只是FORMAT
它:
SELECT FORMAT('%.2f', 3.2172407478999996E8)
-- 321724074.79
PS:如果收入是一些monetary/financial计算,不要转换为浮动;请改用十进制数据类型。