我目前正在运行一个查询,该查询运行一个 sum 函数并将这个数字除以。目前我得到的值是 0.0904246741698848 和 1.6419814808335567。我希望将这些小数修剪为小数点后 2 个空格。他们的架构是一个浮点数。这是我的代码。谢谢您的帮助。
#standardSQL
SELECT
Serial,
MAX(createdAt) AS Latest_Use,
SUM(ConnectionTime/3600) as Total_Hours,
COUNT(DISTINCT DeviceID) AS Devices_Connected
FROM `dataworks-356fa.FirebaseArchive.Firebase_ConnectionInfo`
WHERE PeripheralType = 1 or PeripheralType = 2 or PeripheralType = 12
GROUP BY Serial
ORDER BY Latest_Use DESC
Run Code Online (Sandbox Code Playgroud)
#standardSQL
WITH `data` AS (
SELECT 0.0904246741698848 AS val UNION ALL
SELECT 1.6419814808335567
)
SELECT val, ROUND(val, 2) AS rounded_val
FROM `data`
Run Code Online (Sandbox Code Playgroud)
例如,假设您想要将其应用于您的 Total_Hours 列:
#standardSQL
SELECT
Serial,
MAX(createdAt) AS Latest_Use,
ROUND(SUM(ConnectionTime/3600),2) AS Total_Hours,
COUNT(DISTINCT DeviceID) AS Devices_Connected
FROM `dataworks-356fa.FirebaseArchive.Firebase_ConnectionInfo`
WHERE PeripheralType = 1 OR PeripheralType = 2 OR PeripheralType = 12
GROUP BY Serial
ORDER BY Latest_Use DESC
Run Code Online (Sandbox Code Playgroud)
小智 7
我发现,如果我的数据具有整数(例如 2.00),并且我需要所有数据反映小数点后 2 位,则四舍五入是有问题的,因为这些数据用于最终显示的价格。无论我指定使用 ROUND 舍入什么,Big Query 都会返回 2.0。
假设您正在处理的数据不超过 2 位小数,并且它存储为 STRING,则此代码将起作用(如果小数位数更多,请在每个空格的加法中再添加 0)。
FORMAT("%.*f",2,CAST(GROSS_SALES_AMT AS FLOAT64) + .0001)
Run Code Online (Sandbox Code Playgroud)
这将在 BigQuery 中获取一个浮点数,并将其格式化为两位小数。
CAST(SUM(ConnectionTime/3600) AS STRING FORMAT '999,999.99')
Run Code Online (Sandbox Code Playgroud)
注意:为货币 ($999,999.99) 添加货币符号(例如 $)。
例子:
| 归档时间: |
|
| 查看次数: |
13266 次 |
| 最近记录: |