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

如何让Athena的ROUND函数结果匹配Redshift?

让Athena的ROUND结果匹配Redshift的截断行为

Redshift在这类场景下是直接截断保留两位小数,而Athena的ROUND函数遵循标准四舍五入规则(第三位小数≥5时进位),所以会出现结果差异。要让Athena匹配Redshift的结果,有两种实用方法:

  • 方法1:用TRUNC函数直接截断
    Athena原生支持TRUNC函数,可直接指定保留的小数位数,舍弃后续所有部分,完全贴合Redshift的截断逻辑:

    TRUNC(avg(list), 2)
    

    比如对15.8448执行该语句,会直接得到15.84,和Redshift结果一致。

  • 方法2:通过数值缩放实现截断
    如果不想用TRUNC,也可以用FLOOR函数配合缩放来实现:

    FLOOR(avg(list) * 100) / 100
    

    原理是先把平均值放大100倍,取不大于该值的最大整数(即截断小数部分),再缩小回原比例,同样能得到15.84的结果。

注:如果涉及负数(如-15.8448),两种方法都会得到-15.84,和Redshift的截断逻辑对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:14:51