Search code examples
kdb

How to order results by time in KDB+


I am doing a simple select query similar to below,

select date, time, price, volume from trades where sym=`AAPL.

I would like to order the return results by the time column, but after reading the docs and trying to do

select[>time] date, time, price, volume from trades where sym=`AAPL.

I get an error.

Can someone advise?


Solution

  • Are you querying a partitioned or splayed database?

    If so, from code.kx.com: "This construct works on in-memory tables but not on memory-mapped tables loaded from splayed or partitioned files"

    Therefore two ways to sort:

    q)t1:select[<time] from select date,time,sym,price from trade where date=last date,sym=`AAPL
    q)t2:`time xasc select date,time,sym,price from trade where date=last date,sym=`AAPL
    q)t1~t2
    1b