使用 MariaDB 版本 8.0.19,检测布尔转换的最佳方法是什么?
例如原始数据可能是:
1
1
1
0
0
1
1
1
0
0
我想计算上升沿转换或下降沿,所以在上升沿,从0到1,上述数据的返回将是2。列数据类型为tinyint。伪代码,我在想类似的事情:
select SUM(status)
where status = '1'
and the row previous to it = '0'
有一个 CURRENT_TIMESTAMP 列和一个索引(如果有帮助的话)。粒度为 1 秒间隔。
尝试过:
SELECT site, ffr as "2m", COUNT(ffr) as "2m qty", por as "5m", COUNT(por) as "5m qty", dt as "dateTime" FROM phgt
WHERE dt >= '2023-12-18 08:00:00'
AND dt < '2023-12-21 20:00:00'
GROUP by ffr, por, hour(dt), day(dt)
ORDER by idphgt desc
首先,寻找有关如何捕捉转变的想法
LAG
首次在 MySQL 8.0 和 MariaDB 10.2 中可用。使用 ORDER BY
对行进行排序,因此 LAG(1)
指的是“上一行”。 “布尔”值本质上是数字“0”和“1”。