每小时电量的计算sql

计算思路,把每小时的电表最大记录取出来,然后用当前小时的最大值减去上个小时的最大值即可。 使用了MYSQL8窗口函数进行计算。

sql 复制代码
SELECT b.*,b.epimp - b.lastEmimp ecValue  FROM (
SELECT a.deviceId,a.ctime,a.epimp, lag(epimp) over (ORDER BY a.deviceId,a.ctime) AS lastEmimp
FROM (SELECT
        deviceId,
        DATE_FORMAT(CTIME, '%Y-%m-%d %H') ctime,
        MAX(EP_IMP)    epimp
      FROM electricity
      WHERE deviceId IN('AAA1','AAAA2')
          AND ctime > '2024-05-01'
      GROUP BY deviceId, DATE_FORMAT(CTIME, '%Y-%m-%d %H')) a
      )b 

经过AI优化后的sql

sql 复制代码
WITH a AS (
    SELECT deviceId,
           DATE_FORMAT(CTIME, '%Y-%m-%d %H') ctime,
           MAX(EP_IMP)    epimp
    FROM electricity
    WHERE deviceId IN('1001','1002')
          AND ctime > '2024-05-01'
    GROUP BY deviceId, DATE_FORMAT(CTIME, '%Y-%m-%d %H')
),
b AS (
    SELECT a.deviceId,
           a.ctime,
           a.epimp,
           LAG(a.epimp) OVER (ORDER BY a.deviceId, a.ctime) AS lastEmimp
    FROM a
)
SELECT b.*, b.epimp - b.lastEmimp ecValue
FROM b;
相关推荐
Championship.23.247 分钟前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger7 分钟前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
逍遥德8 分钟前
SpringBoot数据库连接池HikariCP,Druid,Tomcat JDBC,DBCP2,c3p0配置使用
数据库·spring boot·tomcat
薯老板11 分钟前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼11 分钟前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite13 分钟前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台
梦想CAD控件17 分钟前
网页CAD协同设计平台-生产级在线实时协同CAD引擎
前端·javascript·架构
Highcharts.js17 分钟前
React 开发实战:如何使用 useEffect 为 Highcharts 注入实时数据
前端·javascript·react.js·开发实战·实时数据·highcharts·轮询数据
陆枫Larry19 分钟前
Vue Slot 到底在解决什么问题?
前端
梦想很大很大27 分钟前
让 AI 成为“报表配置员”:BI 低代码平台的 Schema 实践路径
前端·人工智能·低代码