如何解决计算组内的滞后时间差
ids: 1 1 1 1 1 2 2 2 2 2
dates: 2021.03.10 2021.03.10 2021.03.10 2021.03.11 2021.03.11 2021.03.10 2021.03.11 2021.03.11 2021.03.11 2021.03.11
times: 12:00 12:01 12:03 12:04 12:05 13:01 13:05 13:06 13:12 13:15
t:([] ids:ids; dates:dates; times:times)
ids dates times
--------------------
1 2021.03.10 12:00
1 2021.03.10 12:01
1 2021.03.10 12:03
1 2021.03.11 12:04
1 2021.03.11 12:05
2 2021.03.10 13:01
2 2021.03.11 13:05
2 2021.03.11 13:06
2 2021.03.11 13:12
2 2021.03.11 13:15
我想计算所有 ID 在同一日期内连续时间之间的差异。如果单个日期只有一次,我希望值为 0。所需的输出看起来像
ids dates times deltaMinutes
----------------------------------
1 2021.03.10 12:00 0
1 2021.03.10 12:01 1
1 2021.03.10 12:03 2
1 2021.03.11 12:04 0
1 2021.03.11 12:05 1
2 2021.03.10 13:01 0
2 2021.03.11 13:05 0
2 2021.03.11 13:06 1
2 2021.03.11 13:12 6
2 2021.03.11 13:15 3
这可以通过 qsql 实现吗?
解决方法
q)update deltaMinutes:`int$-':[first times;times]by ids,dates from t
ids dates times deltaMinutes
---------------------------------
1 2021.03.10 12:00 0
1 2021.03.10 12:01 1
1 2021.03.10 12:03 2
1 2021.03.11 12:04 0
1 2021.03.11 12:05 1
2 2021.03.10 13:01 0
2 2021.03.11 13:05 0
2 2021.03.11 13:06 1
2 2021.03.11 13:12 6
2 2021.03.11 13:15 3
2 2021.03.12 11:00 0
-':
只是 deltas
,但二进制应用程序似乎不支持 deltas
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。