diff --git a/ext/search_kit/ang/crmSearchAdmin.module.js b/ext/search_kit/ang/crmSearchAdmin.module.js
index 0364e3e5a6a7922e62e21044a3d221c8c5bd5cb0..ddd9bc3350a1053a0d473f35d7bbea0f1e88f9e7 100644
--- a/ext/search_kit/ang/crmSearchAdmin.module.js
+++ b/ext/search_kit/ang/crmSearchAdmin.module.js
@@ -340,22 +340,20 @@
         fieldToColumn: fieldToColumn,
         // Supply default aggregate function appropriate to the data_type
         getDefaultAggregateFn: function(info) {
-          var ret = {flag_before: ''};
+          var arg = info.args[0] || {};
+          if (arg.suffix) {
+            return null;
+          }
           switch (info.data_type) {
             case 'Integer':
               // For the `id` field, default to COUNT, otherwise SUM
-              ret.fnName = (info.args[0] && info.args[0].field && info.args[0].field.name === 'id') ? 'COUNT' : 'SUM';
-              break;
+              return (!info.fn && arg.field && arg.field.name === 'id') ? 'COUNT' : 'SUM';
 
             case 'Float':
-              ret.fnName = 'SUM';
-              break;
-
-            default:
-              ret.fnName = 'GROUP_CONCAT';
-              ret.flag_before = 'DISTINCT ';
+            case 'Money':
+              return 'SUM';
           }
-          return ret;
+          return null;
         },
         // Find all possible search columns that could serve as contact_id for a smart group
         getSmartGroupColumns: function(api_entity, api_params) {
diff --git a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
index 3e121a8203ef367a5ab145502064b8571de55bc3..53a30ef8c141a603a21889193068a06d2a35baaa 100644
--- a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
+++ b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
@@ -330,8 +330,9 @@
           if (ctrl.canAggregate(col)) {
             // Ensure all non-grouped columns are aggregated if using GROUP BY
             if (!info.fn || info.fn.category !== 'aggregate') {
-              var dfl = searchMeta.getDefaultAggregateFn(info);
-              ctrl.savedSearch.api_params.select[pos] = dfl.fnName + '(' + dfl.flag_before + fieldExpr + ') AS ' + dfl.fnName + '_' + fieldExpr.replace(/[.:]/g, '_');
+              var dflFn = searchMeta.getDefaultAggregateFn(info) || 'GROUP_CONCAT',
+                flagBefore = dflFn === 'GROUP_CONCAT' ? 'DISTINCT ' : '';
+              ctrl.savedSearch.api_params.select[pos] = dflFn + '(' + flagBefore + fieldExpr + ') AS ' + dflFn + '_' + fieldExpr.replace(/[.:]/g, '_');
             }
           } else {
             // Remove aggregate functions when no grouping
diff --git a/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js b/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
index d2e09fcd4960287e355981680a4e9c809ab4fe86..b735571bfe47a03f4a9c53132c13a012853f8e9d 100644
--- a/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
+++ b/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
@@ -67,7 +67,7 @@
           _.each(ctrl.display.settings.columns, function(col) {
             if (col.type === 'field') {
               col.tally = {
-                fn: searchMeta.getDefaultAggregateFn(searchMeta.parseExpr(col.key)).fnName
+                fn: searchMeta.getDefaultAggregateFn(searchMeta.parseExpr(ctrl.parent.getExprFromSelect(col.key)))
               };
             }
           });