KDB:xgroup的最后记录

KDB: last records of xgroup

我有一个 table 并且我使用 xgroup 按特定列分组。

`col1 xgroup Tab

然后我在每个字段中得到一个列表。

col1       aa                                   bb     
---------------------------------------------------
654301841  ("DFIDXARB";"DFIDXARB)               ("2018";"2018")
529406294  ("DFIDXARB";"DFIDXARB";"DFIDXARC")   ("2018";"2017";"2013")
657471294  ("DFIDVVVB";"DFIDAAAA")              ("2018";"2019")
655649664  ("DFIDVVVR";"DFIDAAAX")              ("")

如何获取最后的值?如下图:

col1       aa                                   bb     
---------------------------------------------------
654301841  "DFIDXARB                           "2018"
529406294  "DFIDXARC"                          "2013"
657471294  "DFIDAAAA"                          "2019"
655649664  "DFIDAAAX"                          ""

您需要使用select...by Q-SQL查询。

    q) select by col1 from tbl

示例:

    q) t:([]id:1 2 1 2 3;v:1 2 3 4 5;n:`a`b`c`d`e)
    q) select by id rom t

  id| v n
  --| ---
  1 | 3 c
  2 | 4 d
  3 | 5 e

另一个不错的选择是使用 fby

q)t:([]id:1 2 1 2 3;v:1 2 3 4 5;n:`a`b`c`d`e)

您可以指定第一个或最后一个

q)select from t where i=(first;i)fby id
id v n
------
1  1 a
2  2 b
3  5 e

q)select from t where i=(last;i)fby id
id v n
------
1  3 c
2  4 d
3  5 e

或者您可以通过索引指定垂直切片

q)select from t where i=(@[;1];i)fby id
id v n
------
1  3 c
2  4 d