1

我有这个 kdb 表:

ts              ticker eid          bid     ask
--------------------------------------------------
09:30:00.001    TIF    NASDAQ       781700  792500
09:30:00.001    MRVL   BATSX        114500  118200
09:30:00.001    AVP    BATSX        239100  240100
09:30:00.001    AVP    ARCA         238000  239900
09:30:00.002    TIF    ARCA         780400  790400
09:30:00.002    AVP    BATSX        239100  239800
09:30:00.003    TIF    NYSE         783700  784000
09:30:00.003    TIF    ARCA         783400  790400
09:30:00.004    AVP    NYSE         239300  240000
09:30:00.004    TIF    NASDAQ       783500  792500
09:30:00.006    MRVL   BATSX        114500  117600
..

如何选择每个股票代码的最后一行,eid 对?对于这个子集,它将是:

09:30:00.001    AVP    ARCA         238000  239900
09:30:00.002    AVP    BATSX        239100  239800
09:30:00.003    TIF    NYSE         783700  784000
09:30:00.003    TIF    ARCA         783400  790400
09:30:00.004    AVP    NYSE         239300  240000
09:30:00.004    TIF    NASDAQ       783500  792500
09:30:00.006    MRVL   BATSX        114500  117600
4

3 回答 3

4

Select without column list 默认情况下会这样做:

select by ticker,eid form t
于 2013-05-29T20:03:01.943 回答
2

以下应该是您正在寻找的内容:

q)select from tbl where i=(last;i) fby ([]ticker;eid)
于 2013-05-29T14:46:20.143 回答
1

您可以聚合多个字段。

select count i by ticker, eid from t

select last ts, last bid, last ask by ticker, eid from t

您将不得不稍微重新排列您的列以完全匹配您的输出,但这很简单。

于 2013-05-29T14:46:15.770 回答