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

Redshift中如何对小数部分大于0.3的浮点数向上取整?

Redshift SQL 实现自定义取整逻辑

针对你需要的小数部分大于0.3向上取整,小于等于0.3向下取整的需求,可以用两种方式实现:

方法一:CASE 条件判断(直观易懂)

通过提取小数部分,结合FLOOR函数做分支判断:

SELECT 
    weight,
    CAST(
        CASE 
            WHEN (weight - FLOOR(weight)) > 0.3 THEN FLOOR(weight) + 1 
            ELSE FLOOR(weight) 
        END AS INT
    ) AS adjusted_weight
FROM your_table;

逻辑说明:

  • FLOOR(weight) 取weight的整数部分(向下取整)
  • weight - FLOOR(weight) 得到小数部分
  • 小数部分>0.3时,整数部分加1;否则直接取整数部分

方法二:CEIL 函数简化写法(更简洁)

利用CEIL(向上取整)函数,通过对原数值做偏移实现需求:

SELECT 
    weight,
    CAST(CEIL(weight - 0.3) AS INT) AS adjusted_weight
FROM your_table;

逻辑说明:

  • 对weight减去0.3后再向上取整:
    • 当原数小数部分>0.3时,weight-0.3的结果会比原数整数部分大0.01及以上,CEIL后得到原整数部分+1
    • 当原数小数部分≤0.3时,weight-0.3的结果≤原数整数部分,CEIL后得到原整数部分

测试你的数据,两种方法都会得到如下结果:

weightadjusted_weight
2.313
2.503
2.763
2.453

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:12:35