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

如何通过SQL求和计算爱沙尼亚月度日间用电量

计算月度日间用电量的解决方案

要获取月度总日间用电量,你可以将原按天统计的查询作为子查询,在外层对每日的OST值求和。同时针对原SQL中的细节做调整,以精准匹配爱沙尼亚日间时段(周一至周五6:00-22:00)的定义:

修正后的求和SQL

SELECT SUM(OST) AS MONTHLY_DAYTIME_USAGE
FROM (
    SELECT
        MAX(KWHI1) - MIN(KWHI1) AS OST
    FROM
        `LOGPV`
    WHERE
        `AEG` BETWEEN '2024.04.01 00:00:00' AND '2024.04.30 23:59:59'
        AND (HOUR(`AEG`) BETWEEN 6 AND 21 OR (HOUR(`AEG`) = 22 AND MINUTE(`AEG`) = 0))
        AND WEEKDAY(`AEG`) BETWEEN 0 AND 4
    GROUP BY
        DATE(`AEG`)
) daily_daytime_usage;

关键调整说明

  • 时间范围补全:在起止日期后加上时分秒,避免漏掉4月30日最后时段的记录
  • 时段精准匹配:原SQL的小时范围是7-21,调整为覆盖6:00到22:00整的记录(如果只需要到21:59:59,直接用HOUR(AEG) BETWEEN 6 AND 21即可)
  • 工作日判断简化:MySQL的WEEKDAY()函数返回0代表周一、4代表周五,直接用BETWEEN 0 AND 4比WEEKDAY(AEG)+1更直观
  • 分组逻辑优化:用DATE(AEG)分组替代DAY(AEG),避免跨月时不同月份的同一天被错误合并

替代方案(局限性说明)

如果能确保月度内日间时段的电量数据连续无中断,也可以直接计算整个时段的MAX(KWHI1)-MIN(KWHI1),但这种方法风险较高——若某天日间数据有缺失,会导致结果偏差,因此更推荐子查询求和的方式:

SELECT MAX(KWHI1) - MIN(KWHI1) AS MONTHLY_DAYTIME_USAGE
FROM `LOGPV`
WHERE
    `AEG` BETWEEN '2024.04.01 00:00:00' AND '2024.04.30 23:59:59'
    AND (HOUR(`AEG`) BETWEEN 6 AND 21 OR (HOUR(`AEG`) = 22 AND MINUTE(`AEG`) = 0))
    AND WEEKDAY(`AEG`) BETWEEN 0 AND 4;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:43:27