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
Другие вопросы по тегам