【发布时间】:2020-09-19 23:26:07
【问题描述】:
我正在尝试计算机器处于特定状态的时间,然后按小时求和。该状态仅在更改时记录,因此我们可以假设它在更改之前处于相同状态。
我试图使用分区,但我认为这不是正确的方法。
我的表结构有序描述:
+----------+-------------------------+
| state_id | t_stamp |
+----------+-------------------------+
| 0 | 2020-06-01 10:44:06.663 |
| 2 | 2020-06-01 10:43:56.660 |
| 0 | 2020-06-01 10:43:06.653 |
| 2 | 2020-06-01 10:42:56.653 |
| 0 | 2020-06-01 10:41:36.643 |
| 3 | 2020-06-01 10:41:26.640 |
| 0 | 2020-06-01 10:41:16.640 |
| 2 | 2020-06-01 10:40:56.637 |
| 0 | 2020-06-01 10:40:06.630 |
| 3 | 2020-06-01 10:39:56.630 |
+----------+-------------------------+
我想要达到的目的:
+----------+------------------+
| state_id | duration_seconds |
+----------+------------------+
| 2 | 10 |
| 0 | 50 |
+----------+------------------+
【问题讨论】:
标签: sql-server tsql date window-functions gaps-and-islands