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

ph0*_*603 4 kdb q-lang

如何从每个组中提取前n行?例如:对于表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
Run Code Online (Sandbox Code Playgroud)

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

谢谢

ter*_*nch 5

可以用fby:

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