【发布时间】:2020-09-04 08:17:36
【问题描述】:
给定下表
time kind counter key1 value
----------------------------------------
1 1 1 1 1
2 0 1 1 2
3 0 1 2 3
5 0 1 1 4
5 1 2 2 5
6 0 2 3 6
7 0 2 2 7
8 1 3 3 8
9 1 4 3 9
如何选择第一行中的值 紧接在每个之后和紧接之前 按时间排序的第 1 行,其中 key1 两个实例中的值相同。即:
time value prevvalue nextvalue
---------------------------------------------
1 1 0n 2
5 5 3 7
8 8 6 0n
9 9 6 0n
以下是我尝试过的一些方法 老实说,我不知道如何规范地实现 在 q 中类似这样的东西,其中先验值具有 当前行的可变偏移量?
select
prev[value],
next[value],
by key1 where kind<>1
update 0N^prevval,0N^nextval from update prevval:prev value1,nextval:next value1 by key1 from table
关于如何实现这一点的一些建议或指针会很棒! 谢谢
【问题讨论】:
标签: kdb