【发布时间】:2014-02-14 12:27:22
【问题描述】:
如果执行分组,Kdb 会为空列计算无穷大。
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
【问题讨论】:
标签: minimum infinity kdb q-lang
如果执行分组,Kdb 会为空列计算无穷大。
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
【问题讨论】:
标签: minimum infinity kdb q-lang
来自 Jeff Borror 的 q for mortals:
q)min 0N 5 0N 1 3 / nulls are ignored
1
q)min 0N 0N / infinity if all null
0W
【讨论】:
这是预期的结果;之后需要更新:
update b:?[0w=b;0N;b] from select min b by a from t
【讨论】:
使用空值操作时应该小心。请注意以下事项
作为附加信息:
q)max 0N 0N
-0W
q)min 0N 0N
0W
q)0N+2
0N
q)sum 0N 2
2
q)sum 0N 0N
0
【讨论】: