KDB: последние записи xgroup - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть таблица, и я использовал 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"                          ""

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Другим хорошим вариантом является использование 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
0 голосов
/ 20 декабря 2018

Вам нужно использовать select ... по запросу 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
...