Kdb首先找不到空值

时间:2014-02-24 12:15:58

标签: group-by kdb notnull

在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

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

1 个答案:

答案 0 :(得分:1)

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

两种选择包括:

select first b where not null b by a from t

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

select b:last fills reverse b by a from t

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

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