집계 함수 sum (x), avg (x), max (x), min (x) 은 x가 비어 있거나 NULL 값만 포함하면 NULL을 반환합니다.KDB에서 null을 반환하는 집계 함수 얻기
KDB에서 sum과 avg는 0을 반환하고 max와 min은 (+ 또는 -) 무한대를 반환합니다.
(A)에 널 (null)을 제거하고, 평소
nsum:{[x] x: x where not null x; $[0=count x; 0N; sum x]}
로 집계되기 전에 결과가 비어 있는지 확인 (:
내가 2 옵션으로 올라와있다 null을 반환 원하는 동작을 얻으려면 B) 축적하기 전에 각 항목에서 누락 여부를 확인하는 새 집계를 만듭니다.빈 목록이 있는지 계속 확인해야합니다.
nsum:{[z] $[0=count z; 0N; {[x;y] $[null x; y; null y; x; x+y]}/ z ]}
A 또는 B보다 나은 (더 빠르고 편리한) 방법이 있습니까?
방법 (B)는 방법 (A)보다 효과가 있습니까?
방법 (A)는 모든 집계 함수로 작업 할 수 있다는 장점이 있습니다. 평균 (이미 적용된 항목 수를 알아야 함)을 산출 할 쌍 함수 ( )가 없으므로 방법 (B)는 "평균"에 대해 작동하지 않습니다.
관련 질문 : 0= type first x
과 같이 빈 목록이 0=count x
보다 빠 른지 확인하는 빠른 방법이 있습니까?
고맙습니다!