2015.11.30 03:51 AM
2015.11.30 04:25 AM
2015.11.30 05:19 AM
q)update 0^pl from uj[;t] 2!update pl:0f from (select distinct date from t)cross select distinct sym from t
so a shorter expression is:q)(cross[;].('[asc;distinct])'[(0!t)`date`sym]) cross 0n1 `A 0n1 `B 0n1 `C 0n1 `D 0n2 `A 0n2 `B 0n2 `C 0n2 `D 0n
q)(2!flip `date`sym`pl!flip(cross[;].('[asc;distinct])'[(0!t)`date`sym]) cross 0n) uj tdate sym| pl--------| ---------1 A | 0.39275241 B | 0.51709111 C |1 D | 0.51597962 A |2 B | 0.40666422 C | 0.17808392 D |
2015.11.30 05:36 AM
2015.11.30 05:51 AM
Here is a generic method, for a table with any number of keys:
EMEA
Tel: +44 (0)28 3025 2242
AMERICAS
Tel: +1 (212) 447 6700
APAC
Tel: +61 (0)2 9236 5700
KX. All Rights Reserved.
KX and kdb+ are registered trademarks of KX Systems, Inc., a subsidiary of FD Technologies plc.