每小时电量的计算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;
相关推荐
andafaAPS10 分钟前
安达发|工艺品aps自动排产排程排单软件:告别生产“一团乱麻“
大数据·数据库·人工智能·安达发aps·计划排产软件·自动排单软件
riuphan12 分钟前
揭秘 JS 类型转换:ToPrimitive 机制的神秘面纱
前端·javascript
zt1985q14 分钟前
本地部署源代码管理解决方案 Bitbucket Data Center 并实现外部访问
运维·服务器·数据库·网络协议·postgresql·源代码管理
最爱睡觉睡觉睡觉17 分钟前
Flutter ThemeData 主题系统
前端·app
最爱睡觉睡觉睡觉18 分钟前
pub.dev 常用包 vs npm 生态对照
前端·app
先吃饱再说18 分钟前
从三行代码理解前端的“三权分立”:HTML、CSS、JS 各司其职
前端
biubiubiu_LYQ19 分钟前
入门开发者基础篇之CSS浮动布局:一文吃透浮动底层逻辑
前端·css
最爱睡觉睡觉睡觉20 分钟前
React Hooks → Flutter 等价写法
前端·app
最爱睡觉睡觉睡觉20 分钟前
CSS → Flutter 对照手册
android·前端
xiaofeichaichai25 分钟前
Service Worker、PWA 与 Web Worker — 离线缓存与主线程算力分离
前端·缓存