diff --git a/render.js b/render.js
index 427f4ec..1c0d51a 100644
--- a/render.js
+++ b/render.js
@@ -240,6 +240,26 @@
     }
   },
   
+  min: function(l) {
+    var out = null;
+    for (var i in l) {
+      if (out == null || l[i] < out) {
+	out = l[i];
+      }
+    }
+    return out;
+  },
+  
+  max: function(l) {
+    var out = null;
+    for (var i in l) {
+      if (out == null || l[i] > out) {
+	out = l[i];
+      }
+    }
+    return out;
+  },
+  
   cat: function(l) {
     return l.join(' ');
   },
@@ -247,6 +267,18 @@
   count: function(l) {
     return l.length;
   },
+  
+  count_distinct: function(l) {
+    var a = {};
+    for (var i in l) {
+      a[l[i]] = 1;
+    }
+    var acc = 0;
+    for (var i in a) {
+      acc += 1;
+    }
+    return acc;
+  },
 
   sum: function(l) {
     var acc;
@@ -271,6 +303,9 @@
       var field, func;
       if (g) {
 	func = agg_funcs[g[1]];
+	if (!func) {
+	  throw new Error('unknown aggregation function "' + g[1] + '"');
+	}
 	field = g[2];
       } else {
 	func = null;
