首页 文章

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

提问于
浏览
5

我有一个 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 回答

  • 9

    你可以使用 :: (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
    

相关问题