1

在 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

我不确定这是否是正确的方法。请提供建议。

4

1 回答 1

1

这对我来说似乎是个好方法。

两种选择包括:

select first b where not null b by a from t

好处是它不依赖于特定的列类型,也许更清楚地解释了你的意图,但它稍长一些。或者

select b:last fills reverse b by a from t

在某些测试运行中,这是最快的方法。

在 kdb 中,总是有多种方法可以做事,而从来没有真正正确或错误的答案。

于 2014-02-24T12:57:43.193 回答