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 ответ
Решение
Ты можешь использовать ::
(функция идентичности) для этого:
aggr[(last;min;::);(`time`size`price);`trade]
который такой же как:
aggr[(last;min;{x});(`time`size`price);`trade]
::
перегружен для использования в качестве функции монадической идентичности:
q)(::)1
1
q){x}1
1