【问题标题】:Kdb/Q Group By Minimum gives infinityKdb/Q Group By Minimum 给出无穷大
【发布时间】: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


    【解决方案1】:

    来自 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
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        作为附加信息:

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

        【讨论】:

          猜你喜欢
          • 2021-01-01
          • 1970-01-01
          • 2022-08-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-29
          • 2017-07-23
          • 2020-02-08
          相关资源
          最近更新 更多