SQL如何在SUM中使用LAG



My table (name EPM1):

tbody> <<tr>
时间戳 INVERTER1POWER INVERTER2POWER POWERLIMIT
2021 - 09 - 30 t17:19:42.309z1004000.8
2021 - 09 - 30 t17:20:42.309z2005000.6
2021 - 09 - 30 t17:21:42.309z3006000.7

使用嵌套子查询:

SELECT SUM(temp_value) AS sum2
FROM   (
SELECT CASE
WHEN INVERTER1POWER+INVERTER2POWER
< 25000 * LAG(POWERLIMIT, 1, 0) OVER (ORDER BY timestamp)
THEN INVERTER1POWER+INVERTER2POWER
END AS temp_value
FROM   epm1
)

对于样本数据:

CREATE TABLE EPM1 (TIMESTAMP, INVERTER1POWER, INVERTER2POWER, POWERLIMIT) AS
SELECT TIMESTAMP '2021-09-30 17:19:42.309 UTC', 100, 400, 0.8 FROM DUAL UNION ALL
SELECT TIMESTAMP '2021-09-30 17:20:42.309 UTC', 200, 500, 0.6 FROM DUAL UNION ALL
SELECT TIMESTAMP '2021-09-30 17:21:42.309 UTC', 300, 600, 0.7 FROM DUAL

输出:

<表类>SUM2tbody><<tr>1600

最新更新