You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在BigQuery中实现向0.5倍数的向上取整?

在BigQuery中实现向上取整到较大的0.5倍数

你需要的是向上取整到不小于输入值的最小0.5倍数,而非四舍五入到最近的0.5倍数——你之前用的round()函数是四舍五入逻辑,所以才会得到不符合预期的结果。

解决方案

使用BigQuery的CEIL()函数(向上取整函数),公式如下:

CEIL(input_value * 2) / 2

验证案例

对应你的输入输出逐一验证:

  • 输入0.01CEIL(0.01 * 2) / 2 = CEIL(0.02) / 2 = 1 / 2 = 0.5,符合预期
  • 输入2.3913CEIL(2.3913 * 2) / 2 = CEIL(4.7826) / 2 = 5 / 2 = 2.5,符合预期
  • 输入2.11CEIL(2.11 * 2) / 2 = CEIL(4.22) / 2 = 5 / 2 = 2.5,符合预期

关于输入4.6667的说明

你表格中输入4.6667期望输出4.5的情况,和你描述的“取较大的0.5倍数”逻辑矛盾——因为4.5比4.6667小,不属于“较大的倍数”,按照需求应该输出5.0。如果确实需要得到4.5,那需求是向下取整到0.5倍数,此时用FLOOR(input_value * 2) / 2,但这和你要求的“2.11应返回2.5而非2”冲突,推测是表格存在笔误。

内容的提问来源于stack exchange,提问作者bala

火山引擎 最新活动