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
我有一个 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