You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中用ROUND函数保留Small_Bags_Percent的1位小数

解决SQL中ROUND函数保留小数的问题

你之前的写法错误在于不能在同一层SELECT的ROUND函数里直接引用列别名,SQL的执行顺序决定了列别名要在SELECT子句的表达式计算完成后才生效,所以别名无法被同一层的函数调用。

最简单的修正方式

直接把计算百分比的整个表达式作为ROUND函数的第一个参数,指定保留1位小数(第二个参数传1即可):

SELECT  
  Date,
  Region,
  Total_Bags,
  Small_Bags,
  ROUND((Small_Bags / Total_Bags) * 100, 1) AS Small_Bags_Percent
FROM `shaped-fx-370703.avocado_data.avocado_prices`
WHERE Total_Bags <> 0

更清晰的拆分写法(适合复杂计算)

如果后续有更复杂的逻辑,可以用CTE(公共表表达式)先计算出原始百分比,再对结果应用ROUND函数,提升代码可读性:

WITH AvocadoBagStats AS (
  SELECT  
    Date,
    Region,
    Total_Bags,
    Small_Bags,
    (Small_Bags / Total_Bags) * 100 AS Small_Bags_Percent
  FROM `shaped-fx-370703.avocado_data.avocado_prices`
  WHERE Total_Bags <> 0
)
SELECT
  Date,
  Region,
  Total_Bags,
  Small_Bags,
  ROUND(Small_Bags_Percent, 1) AS Small_Bags_Percent
FROM AvocadoBagStats

内容的提问来源于stack exchange,提问作者G. R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:01:05