计算SQL中布尔字段为true时的持续时间

时间:2014-12-31 20:09:11

标签: mysql sql timestamp duration

我在MySQL数据库中有下表,该数据库记录系统何时打开或关闭。目前每十分钟获取一次数据,但这可能会在未来发生变化。

timestamp              on                   
2014-12-29 07:59:59    1
2014-12-29 08:09:59    1
2014-12-29 08:20:00    1
2014-12-29 08:29:58    0
2014-12-29 08:39:59    1
2014-12-29 08:49:59    1
2014-12-29 08:59:58    0
2014-12-29 09:09:59    0
2014-12-29 09:19:58    0
2014-12-29 09:29:59    0
2014-12-29 09:39:58    1
2014-12-29 09:49:59    0

我目前正在Python中pandas进行一些处理,以计算系统启动的持续时间。我这样做是通过获取状态变化的点,然后计算这些时间之间的持续时间。

有没有办法在SQL中执行此操作?如果可能的话,我宁愿在数据库中这样做,特别是因为我可以在一段时间内每天都这样做而不将所有数据传输到客户端。在pandas中,我使用shift()函数来获取下一行并查看它是否不同,但我在MySQL中看不到这样做的方法。

有什么想法吗?

https://gist.github.com/robintw/abc9a33d54c1d40c6f01

上可以使用SQL来设置包含上述示例数据的表格

0 个答案:

没有答案