我有一个包含两列的表:动作开始时间和动作名称。
| 动作| action |
| --| ------------ |
| 运行| running |
| 行走| walking |
| 行走| walking |
| 坐着| sitting |
| 行走| walking |
| 运行| running |
我需要知道行动的持续时间:开始和结束时间。开始时间是动作的时间,这是已知的。
但如何知道结束的时间呢?也就是说,下一个动作的开始与当前动作不同?
动作“行走”的示例
| 时间结束| time_end |
| --| ------------ |
| 2023-07-27 05:01:00.000| 2023-07-27 05:01:00.000 |
| 2023-07-27 05:10:00.000| 2023-07-27 05:10:00.000 |
2条答案
按热度按时间3bygqnnd1#
请看下面的修正版本。这个假设每个动作都是唯一的。
我认为你可以使用滞后函数来实现你的目标。
字符串
在这种情况下,最后一行的 time_end 将等于 NULL,我认为这是正确的,因为它还不知道。
**编辑:**在@Tim Biegeleisen的评论之后,这是基于他的工作的更新答案。但是,它可以正确地找到相同的连续操作组的time_end值。
型
因此,我们实现了预期的结果:
x1c 0d1x的数据
xwbd5t1u2#
使用行号差异方法,我们可以尝试以下操作:
字符串
的数据
Demo