Kdb / Q Group By Minimum给出无穷大

时间:2014-02-14 12:27:22

标签: minimum infinity kdb q-lang

如果执行group by,Kdb将为null列计算无穷大。

t:([]a: 1 1 2;b: 3 2 0n)
select min b by a from t

a       
1   2.0
2   ow

ow是无限。

我有什么方法可以获得null(0n)

2

3 个答案:

答案 0 :(得分:2)

来自Jeff Borror的凡人之道:

q)min 0N 5 0N 1 3                  / nulls are ignored
1
q)min 0N 0N                        / infinity if all null
0W

http://code.kx.com/q/ref/stats-aggregates/#min-minimum

答案 1 :(得分:0)

这是预期的结果;你需要事后更新:

update b:?[0w=b;0N;b] from select min b by a from t

答案 2 :(得分:0)

使用空值操作时应该小心。请注意以下内容

作为附加信息:

q)max 0N 0N
-0W
q)min 0N 0N
0W
q)0N+2
0N
q)sum 0N 2
2
q)sum 0N 0N
0