我有一个我想逐行应用的公式,这样在计算中只包含任何给定行上的当前行和前一行。考虑这些数据:
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个数据点。我需要在数据集的每一行完成计算。
扫描(“\”)会应用此行为,但遗憾的是我在使用select语句时不知道如何执行此操作。
答案 0 :(得分:2)
不完全确定您想要的是什么,但以下内容使用每个<table>
的最新var table = doc.DocumentElement;
var voornaam = (XmlElement)table.SelectSingleNode("*[@name='Voornaam']");
XmlElement newElement = doc.CreateElement("column");
newElement.SetAttribute("name", "Tussenvoegsel");
table.InsertAfter(newElement, voornaam);
来计算总和price
:
sym
对于上面给出的最终数据点,它给出了相同的答案。
答案 1 :(得分:1)
您还可以获得每个索引的最后价格,如下所示:
{[x;y] exec sum price from x where i<=y, i=(last;i) fby sym}[data]each til count data
101.2 901.4 902.5 904.7 905