【发布时间】:2018-02-07 16:34:23
【问题描述】:
我有一个公式,我想逐行应用,这样只有任何给定行上的当前行和前一行才会包含在计算中。考虑这些数据:
data:([]dt:2017.01.05D19:45:00.238248239 2017.01.05D20:46:00.282382392 2017.01.05D21:47:00.232842342 2017.01.05D22:48:00.835838442 2017.01.05D20:49:00.282382392;sym:`AAPL`GOOG`AAPL`BBRY`GOOG;price:101.20 800.20 102.30 2.20 800.50;shares:500 100 500 900 100)
data:
dt sym price shares
2017.01.05D19:45:00:238248239 AAPL 101.20 500
2017.01.05D20:46:00:282382392 GOOG 800.20 100
2017.01.05D21:47:00:232842342 AAPL 102.30 500
2017.01.05D22:48:00:835838442 BBRY 2.20 900
2017.01.05D20:49:00:282382392 GOOG 800.50 100
公式select sum price from data where i=(last;i)fby sym 会产生我需要的结果,但它只会产生 1 个数据点。我需要在数据集的每一行进行计算。
Scan ("\") 会应用此行为,但不幸的是,在使用 select 语句时我不知道该怎么做。
【问题讨论】:
-
code.kx.com/q/cookbook/faq-listbox/… 这是针对 k4 列表框的,但同样的建议也适用于 StackOverflow - 一个可执行的示例是值得的,比上面的表格快照更重要
-
您的预期结果是什么?就目前而言,您在寻找什么还不是很清楚。有关编写问题的建议,请参阅creating a Minimal, Complete, and Verifiable example 上的本指南。
-
最好编辑原始问题以包含示例输出而不是将其添加为注释,问题的格式选项比 cmets 好得多