2013-06-23 60 views
1

我有表trade:([]time:`time$(); sym:`symbol$(); price:`float$(); size:`long$()) 与例如1000条记录,例如10个独特的syms。我想总结每个sym的前4个价格。如何从单个记录中总结多个元素

我的代码如下所示:

priceTable: select price by sym from trade; 
amountTable: select count price by sym from trade; 
amountTable: `sym`amount xcol amountTable; 
resultTable: amountTable ij priceTable; 

所以我的新表的样子:resultTable

sym | amount price 
-------| -------------------------------------------------------------- 
instr0 | 106 179.2208 153.7646 155.2658 143.8163 107.9041 195.521 .. 

命令的结果:res: select sum price from resultTable where i = 1

price                 
.. 
---------------------------------- 
14.71512 153.2244 154.1642 196.5744 

现在,当我想总结我收到的元素:sum res

price| 14.71512 153.2244 154.1642 196.5744 170.6052 61.26522 45.70606 
46.9057.. 

当我想在res计算元素:count res

1 

我认为水库是有许多值的单个记录,我怎么能概括所有这些值,或者我怎么可以总结第一对于?

+0

如果mnestor的答案解决了您的问题,您应该将其标记为已接受。如果没有,请告诉我们还缺什么。 – mollmerx

回答

2

您可以使用“每个”对每一行运行总和:

select sum each price from res 

或者,如果你想在resoultTable运行:

select sum each price from resoultTable 

总结前四倍的价格为每行,使用二进每个右:

select sum each 4#/:price from resoultTable 

或者你可以做到这一切很容易,一步到位:

select COUNT:count i, SUM:sum price, SUM4:sum 4#price by sym from trade