非常愚蠢的问题......考虑下面的表格t1,按照sym排序。
t1:([]sym:(3#`A),(2#`B),(4#`C);val:10 40 12 50 58 75 22 103 108)
sym val
A 10
A 40
A 12
B 50
B 58
C 75
C 22
C 103
C 108
我想选择与每个sym对应的第一行,如下所示:
(`sym`val)!(`A`B`C;10j, 50j, 75j)
sym val
A 10
B 50
C 75
要做到这一点必须是一个单行。要获得每个sym的最后一行,它就像select by sym from t1
一样简单。任何提示?
答案 0 :(得分:4)
您可以使用fby
q)select from t1 where i=(first;i) fby sym
sym val
-------
A 10
B 50
C 75
答案 1 :(得分:3)
select first val by sym from t1
或者对于多列,您可以反转表并运行查询:
select by sym from reverse t1