terser 表单用于选择键控表的第一行

问题描述 投票:0回答:1

假设我有一张桌子

q) t:([]
    name:`c`c`c`w`w;
    id:1 1 1 2 1;
    c:2 4 5 4 3
 );

q)show t;
name id c
---------
c    1  2
c    1  4
c    1  5
w    2  4
w    1  3

并且我想根据

name
id
的复合分组获得第一行。

因为我只能做一栏

q)select first c by name,id from t
name id c
---------
c    1  2
w    2  4
w    1  3

这给了我所需的结果。但是,假设我有几个其他列(除了

name
id
c
),导致打字不方便

select first c, first col1, first col2, ...,first colN by name,id from t 

有更简洁的吗?

kdb
1个回答
1
投票

使用

fby
https://code.kx.com/q/ref/fby/#tables

q)select from t where i=(first;i) fby ([] name; id)
name id c
---------
c    1  2
w    2  4
w    1  3
q)
© www.soinside.com 2019 - 2024. All rights reserved.