gpt4 book ai didi

MySQL 计算最后 "closed group"列的总和

转载 作者:行者123 更新时间:2023-11-28 23:39:21 27 4
gpt4 key购买 nike

我有一个表,有(为简单起见)两个字段:

#00 value | enabled
#01 ===============
#02 100 | 1
#03 200 | 1
#04 300 | 1
#05 0 | 0
#06 0 | 0
#07 200 | 1
#08 200 | 1
#09 200 | 1
#10 100 | 1
#11 0 | 0
#12 0 | 0

每小时记录一条记录。

基本上启用值标记一个周期,当启用 = 1 时,该值表示消耗的一定量的功率(每行 1 小时)。当 enabled = 0 时,每小时仍然有一行(此时该值无关紧要)。

问题:

我需要对最后 完整周期的所有“值”求和 = enabled=1 的序列。所以在上面的例子中#07-#10 = 200+200+200+100 = 700。

这在 SQL 中如何完成?也许是存储过程?

最佳答案

您可以在 SQL 中执行此操作。这是一种方法:

select count(*), sum(value)
from t cross join
(select max(id) as max_prev0
from t cross join
(select max(id) as max_1
from t
where id = 1
) t0
where t = 0 and t.id < t.max_1
) t1
where t.id > t.max_prev0 and t.id <= t.max_1;

注意:这假设您的数据中确实有一些 0(尽管处理 NULL 值很容易。它还假设您有一个字段(称为 id 在此查询中)处理排序。

关于MySQL 计算最后 "closed group"列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34842579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com