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

单条SQL实现各条件下Actuals等计算列SUM汇总的方法

单条SQL实现多指标分条件求和方案

完全可以通过单条SQL实现该需求,你提到的三个指标*实际值(Actuals)、预测值(Forecast)、绝对误差(Absolute Error)*的分条件求和,常用实现方式分为两类,可根据你的过滤场景选择:

  • 按维度分组的全量聚合:如果是要对每个地点、每个标题维度下的三个指标分别求和,直接用GROUP BY搭配聚合函数即可,参考语句如下:
SELECT 
    地点字段,
    标题字段,
    SUM(Actuals) AS 总实际值,
    SUM(Forecast) AS 总预测值,
    SUM(`Absolute Error`) AS 总绝对误差
FROM 你的业务表名
-- 此处可添加全局过滤条件,例如 WHERE 统计时间 BETWEEN '2024-01-01' AND '2024-12-31'
GROUP BY 地点字段, 标题字段;
  • 同维度下多条件分别求和:如果是要在同一行返回满足不同过滤条件的指标求和结果(比如同一个地点下,分别统计上半年、下半年的三个指标汇总值),用条件聚合实现即可,参考语句如下:
SELECT 
    地点字段,
    标题字段,
    -- 统计满足条件A的指标和
    SUM(CASE WHEN 条件A THEN Actuals ELSE 0 END) AS 条件A_总实际值,
    SUM(CASE WHEN 条件A THEN Forecast ELSE 0 END) AS 条件A_总预测值,
    SUM(CASE WHEN 条件A THEN `Absolute Error` ELSE 0 END) AS 条件A_总绝对误差,
    -- 统计满足条件B的指标和
    SUM(CASE WHEN 条件B THEN Actuals ELSE 0 END) AS 条件B_总实际值,
    SUM(CASE WHEN 条件B THEN Forecast ELSE 0 END) AS 条件B_总预测值,
    SUM(CASE WHEN 条件B THEN `Absolute Error` ELSE 0 END) AS 条件B_总绝对误差
FROM 你的业务表名
GROUP BY 地点字段, 标题字段;

如果绝对误差是你需要实时计算的字段而非表中已存储字段,可直接把计算逻辑放到聚合函数内,例如SUM(ABS(Actuals - Forecast)) AS 总绝对误差,不需要预先定义计算列再求和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:27:01