Add count_nz (count nonzero) aggregation function.
Also prevent sum(stuff_including_null) from producing NaN as the answer.
diff --git a/render.js b/render.js
index 121e341..5db9dcb 100644
--- a/render.js
+++ b/render.js
@@ -306,6 +306,16 @@
return l.length;
},
+ count_nz: function(l) {
+ var acc = 0;
+ for (var i in l) {
+ if (l[i] != null && l[i] != 0) {
+ acc++;
+ }
+ }
+ return acc;
+ },
+
count_distinct: function(l) {
var a = {};
for (var i in l) {
@@ -322,7 +332,7 @@
var acc;
if (l.length) acc = 0;
for (var i in l) {
- acc += parseFloat(l[i]);
+ acc += parseFloat(l[i]) || 0;
}
return acc;
},