在KDB中进行Group By时。我必须在列
中找到该组中的第一个非空值例如
t:([]a:1 1 1 2;b:0n 1 3 4 )
select first b by a from t
我发现实现这一目标的一种方法是:
select first b except 0n by a from t
我不确定这是否是一种正确的方法。请提供建议。
答案 0 :(得分:1)
这对我来说似乎是个好方法。
两种选择包括:
select first b where not null b by a from t
好处是它不依赖于某种列类型,也许更清楚地解释了你的意图,但它稍微长一些。或
select b:last fills reverse b by a from t
在某些测试运行中,这是最快捷的方式。
在kdb中,总有多种方法可以做到,而且从来没有真正的正确或错误的答案。