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

如何编写SQL查询a、b、c指标并验证(a + b)/2 = c是否成立

SQL实现(a+b)/2=c指标校验方案

可以直接在原有查询语句基础上增加计算字段、校验逻辑,既可以全量返回所有数据的校验结果,也可以直接筛选出不符合公式的异常数据。

整数场景无精度误差写法

如果a、b、c三个字段均为整数类型,不存在小数精度问题,可以直接用等号判断:

select
    a,
    b,
    c,
    (a + b)/2 as 理论c值,
    case when (a + b)/2 = c then '校验通过' else '校验不通过' end as 校验结果
from
    table_test
where
    type = 1
    and
    origin not in (10, 20)
-- 如果只需要查看异常数据,取消下面一行的注释即可
-- having 校验结果 = '校验不通过'

浮点数场景精度兼容写法(生产环境推荐)

如果三个字段是浮点数、decimal类型(比如金额、比率类指标),直接用等号判断会因为数据库浮点数存储精度问题出现误判,需要设置业务允许的误差阈值做判断:

select
    a,
    b,
    c,
    (a + b)/2 as 理论c值,
    abs((a + b)/2 - c) as 实际值与计算值差值,
    case when abs((a + b)/2 - c) < 0.0001 then '校验通过' else '校验不通过' end as 校验结果
from
    table_test
where
    type = 1
    and
    origin not in (10, 20)
-- 仅查看异常数据取消下面注释即可
-- having 校验结果 = '校验不通过'

误差阈值可以根据业务精度要求调整,比如精确到分的金额字段,阈值设置为0.005即可满足校验需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:34:02