KDB - 如何通过聚合返回功能选择中的所有值

时间:2018-04-21 21:33:17

标签: kdb

我有一个trade表:

trade:([]time:`time$();sym:`symbol$();price:`float$();size:`int$())
`trade insert(5?09:30:00.000;5?`a`b;5?10.75;5?100)

和聚合(aggr)函数:

aggr:{[f;c;tab]  ?[tab;();`sym;c!(f),'c] }

适用于以下情况:

aggr[(last;min;max);(`time`size`price);`trade]

但是我想要所有的价格,而不仅仅是max,如下所示:

?[trade;();`sym;(`time`size`price!((last;`time);( min;`size);(`price)))]

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用:: (identity function)

aggr[(last;min;::);(`time`size`price);`trade]

与:

相同
aggr[(last;min;{x});(`time`size`price);`trade]
重载

::以用作monadic标识函数:

q)(::)1
1
q){x}1
1