KDB:从每个组中选择前n行

时间:2015-10-19 11:17:52

标签: kdb q-lang

如何从每组中提取前n行?例如:for table bb:([]sym:(4#`a),(5#`b);val: til 9)

  sym   val
  -------------
  a     0
  a     1
  a     2
  a     3
  b     4
  b     5
  b     6
  b     7
  b     8

如何通过sym选择每组的前两行?

由于

2 个答案:

答案 0 :(得分:5)

可以使用fby:

q)select from bb where ({x in 2#x};i) fby sym
sym val
-------
a   0
a   1
b   4
b   5

答案 1 :(得分:2)

你可以试试这个:

q)select from t where i in raze exec 2#i by sym from t
sym val
-------
a   0
a   1
b   4
b   5
相关问题