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

如何在SQL中针对特定IP设备对数值进行指定倍数计算?

修改后的SQL脚本及说明

方案1:仅获取目标计算总和(无日期分组)

如果只需要得到指定IP设备的POWER计算总和(650),可以用CASE语句针对不同IP做差异化计算后求和:

SELECT 
  SUM(
    CASE 
      WHEN device = '192.168.25.35' THEN power * 2
      WHEN device = '192.168.25.36' THEN power
      ELSE 0
    END
  ) AS calculated_power
FROM energy.realtime 
WHERE device IN ('192.168.25.35', '192.168.25.36');

方案2:按转换后的日期分组统计

如果需要保留日期字段并按UTC时间分组统计每日的计算结果,需添加GROUP BY子句(避免聚合函数与非聚合字段冲突):

SELECT 
  SUM(
    CASE 
      WHEN device = '192.168.25.35' THEN power * 2
      WHEN device = '192.168.25.36' THEN power
      ELSE 0
    END
  ) AS calculated_power,
  CONVERT_TZ(date_of_reading, '+2:00', '+00:00') AS date_of_reading
FROM energy.realtime 
WHERE device IN ('192.168.25.35', '192.168.25.36')
GROUP BY CONVERT_TZ(date_of_reading, '+2:00', '+00:00');

关键说明

  • 原脚本直接SUM(power)会累加原始POWER值,无法实现192.168.25.35的POWER翻倍需求;
  • CASE语句精准匹配目标IP,对192.168.25.35的POWER值执行×2操作,192.168.25.36保持原值,最终求和得到预期结果650;
  • 方案2中GROUP BY必须与SELECT中的非聚合字段(转换后的日期)一致,否则会因SQL模式限制报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:57:16